凯发真人娱乐

@autowired注解与@qualifier注解搭配使用-凯发真人娱乐

2023-08-17,,

问题:当一个接口实现由两个实现类时,只使用@autowired,会报错,如下图所示

实现类1

实现类2

controller中

然后启动服务报错,如下所示:

exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.unsatisfieddependencyexception: error creating bean with name 'ordercontroller': unsatisfied dependency expressed through field 'productorderservice'; nested exception is org.springframework.beans.factory.nouniquebeandefinitionexception: no qualifying bean of type 'net.xdclass.order_service.service.productorderservice' available: expected single matching bean but found 2: service1,service2

原因是存在两个实例service1,service2,系统不知道注入哪个一个实例,其实idea工具已经飘红提示了存在两个实例,所以这里我们就需要用到@qualifier注解来指明注入的实例,如下图所示

这样就ok了,idea飘红提示也没有了,启动也正常

补充:我们也可以用@resource(name="service1")如图所示

@autowired注解与@qualifier注解搭配使用----解决多实现选择注入问题的相关教程结束。

网站地图