BeanNotOfRequiredTypeException引发的@Autowired和@Resourcequshe

以前一直都在用@Resource习惯了,看源码感觉用@Autowired比较多,感觉区别不大,习惯也就一直没改。写代码的时候启动发现报错:

Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'userService' is expected to be of type 'com.example.user.UserInfoServiceImpl' but was actually of type 'com.example.app.UserServiceImpl.'

我写了一个UserInfoServiceImpl,偷懒引用的时候把变量名写成UserService,这时候旧报错了

这是由于@Resource首先根据名称查找,再根据类型,刚好项目中别人使用@Service的时候,把userService这个名字抢了,所以spring注入的时候找到了UserServiceImpl,而不是想要的UserInfoServiceImpl,所以报错。

解决:

1.使用@Autowired,别偷懒,使用@Service的时候,把名字也加上去@Service("userInfoService")

2.变量名改回userInfoService。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值