关于spring注解无法注入,我在service的实现类用@service(“accountSer

关于spring注解无法注入,我在service的实现类用@service(“accountService”)标明bean的name,然后在controller注入
@Resource(“accountService”)
private AccoutService accountService
结果报错没有定义accountService这样一个bean

这个坑我也踩过,Spring设计原则是如果有接口有实现类,注解注入的时候必须使用接口注入,而不能使用实现类注入,你把@Resource(“accountService”)
private AccoutService accountService这个私有属性改为接口就可以注入了,或者不要实现任何类。我试了三个小时才试出来的。。。后来各种查资料。。。这是个大坑啊。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-28
是不是service所在包没扫到所以没初始化追问

不会,xml中我配了扫描的包

追答

你用

@Resource(name=“accountService”)
试试

追问

试过了,直接提示这个bean未定义

感情@service(“”)都不能声明bean的name了

追答

我这边都是通过
@Service("requireService")
@Resource(name = "contractService")
private ContractService contractService;
来注入的没问题

追问

我这边怎么回事啊……

追答

我还是觉得是你的包没扫到,其他包里的没问题吗

追问

我的service层的接口和实现类都放在service包下,所以我写的扫描的包就是service

解决了,好累,是spring监听器配置问题,之前一直报错,就给注掉了,刚才把监听器报错问题解决了,就好了

本回答被提问者采纳
第2个回答  2016-06-28
在controller注入应该是@Autowired吧

@Autowired

private AccoutService accountService追问

亲,autowired是按type注入的,resource可以byname,bytype注入没问题的

问题已经解决,不是这块的问题

相似回答