spring 普通类 怎么通过@Autowired 注入service

一个普通类如下:@ComponentpublicclassTestSpring{@AutowiredprivateUserServiceuserService;publi... 一个普通类如下:
@Component
public class TestSpring {
@Autowired
private UserService userService;

public void output() {
System.out.println("aaaa");
}
}

我在controller里面调用上面的普通类:
@Controller
@RequestMapping("/")
public class UserController {
@RequestMapping("addUser")
@AccessRequired
public void addUser() {
TestSpring test = new TestSpring();
test.output();
}
}

spring配置文件时扫描所有包:
<!-- 配置要扫描的包 -->
<context:component-scan base-package="com.test.*"></context:component-scan>

结果debug进入TestSpring类发现userService是null,求解法。
网上说只要在普通类加上@Component托管给spring就行了,可我加了还没用
展开
 我来答
大海级
2015-10-28 · TA获得超过856个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:123万
展开全部
你这一句“TestSpring test = new TestSpring();”,这就说明是你自己new 了一个TestSpring类,而不是交给了Spring容器处理,所以Spring容器是不会帮你把userService注进去的。
西西哩的小马甲
2018-04-11 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.8万
展开全部

spring基于注解的普通类怎么调用@Services注解的service方法,需要一些先决条件:  

1、如果你想用@autowired,那么这个类本身也应该是在spring的管理下的,即你的UserLogUtil也要标注为一个component(或Service),这样spring才知道要注入依赖;  

2、或者,不标注为@Component的话,此时不能通过@autowired来注入依赖,只能通过ApplicationContext来取得标注为Service的类:  

UserLogService service = ApplicationContext.getBean(UserLogService.class)。

一、电脑常见问题

主板不启动,开机无显示,有显卡报警声。

故障原因:一般是显卡松动或显卡损坏。    

处理办法:打开机箱,把显卡重新插好即可。要检查AGP插槽内是否有小异物,否则会使显卡不能插接到位;对于使用语音报警的主板,应仔细辨别语音提示的内容,再根据内容解决相应故障。     

如果以上办法处理后还报警,就可能是显卡的芯片坏了,更换或修理显卡。如果开机后听到"嘀"的一声自检通过,显示器正常但就是没有图像,把该显卡插在其他主板上,使用正常,那就是显卡与主板不兼容,应该更换显卡。  

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金鱼是王者
2016-07-29 · TA获得超过913个赞
知道答主
回答量:122
采纳率:0%
帮助的人:45.6万
展开全部
应该没问题的。你试试看去掉普通类,直接在controller里注入service,看看能不能行,如果还是不行可能是配置的问题。如果可以的话。那就奇怪了。。。下次就别在中间加这个普通类来过渡了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式