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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于spring注解无法注入,我在service的实现类用@service(“accountSer相关的知识,希望对你有一定的参考价值。

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

这个坑我也踩过,Spring设计原则是如果有接口有实现类,注解注入的时候必须使用接口注入,而不能使用实现类注入,你把@Resource(“accountService”)
private AccoutService accountService这个私有属性改为接口就可以注入了,或者不要实现任何类。我试了三个小时才试出来的。。。后来各种查资料。。。这是个大坑啊。。。
参考技术A 是不是service所在包没扫到所以没初始化追问

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

追答

你用

@Resource(name=“accountService”)
试试

追问

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

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

追答

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

追问

我这边怎么回事啊……

追答

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

追问

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

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

本回答被提问者采纳
参考技术B 在controller注入应该是@Autowired吧

@Autowired

private AccoutService accountService追问

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

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

用spring 注解注入;dao和service都为null,是啥原因?

参考技术A 1.要让spring管理的bean,比如dao和service加上相应的注解
2.配置applicationContext.xml中扫描的包
3.对于具体依赖处,使用Autowired自动注入
参考技术B spring注入需要将接口注入即可,在调用时再使用它的实现类。因此在spring中写入dao和service的接口。如果还有问题请再说明问题。 参考技术C

参考技术D 你好,导致注入失败的原因很多,需要认真检查。
你这个项目就是一个Spring吗?如果用注解注入,检查配置文件。当然使用注解的jar包都需要导入。没有具体的代码,或者报的异常,很难分析。
第5个回答  2011-11-06 你具体怎么做的可以列下吗?方便给你找问题!

以上是关于关于spring注解无法注入,我在service的实现类用@service(“accountSer的主要内容,如果未能解决你的问题,请参考以下文章

service 无法注入bean问题

关于spring mvc 3.0注解,注入失败的问题

Maven模块化开发,spring无法注入其它模块中的接口

用spring 注解注入;dao和service都为null,是啥原因?

关于spring中无法将service注入到servlet中的问题

spring 定时任务注入service问题