使用@Autowired报错Could not autowire. There is more than one bean of 'ProductClient' type.

使用@Autowired Could not autowire. There is more than one bean of ‘ProductClient’ type报错解决
解决方法:

1.将@Autowired注解替换成@Resource(name="")注解即可,name:中填写你想注入的bean对象名称

@Resource
private ProductClient productClient;

2.添加@Qualifier("")注解 “”:中填写你想注入的bean对象名称

@Qualifier("productClient")
@Autowired
private ProductClient productClient;

注意 name与""中所填内容均为需要注入对象的类名称或者指定的名称,如下:

@service ("pfProductservicel")
public class PfProductservicell implements IPfproductservicehtups
错误分析

这里首先要简短的说明一下@Autowired@Resource(name="")的区别,两个注解都是用于实现Spring中ioc功能,也就是注入对象,但是两者也有一个本质的区别,@Autowired对象是通过对象类型注入对象的,如:

//这里会从Spring容器中搜索属于ProductClient类型的对象,包括实现它的一些对象
@Autowired
private ProductClient productClient;

所以,如果ProductClient接口下实现了多个对象,@Autowired就不能准确的指定到底是哪一个实现类,所以会报如上错误;
如上两种解决方案都是为了指明到底注入哪一个对象,所以最后还需要在需要注入的对象上加上@service ("productClient")注解来指明名称

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值