zoukankan      html  css  js  c++  java
  • @Autowired注解与@Qualifier注解搭配使用

    问题:当一个接口实现由两个实现类时,只使用@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")如图所示

  • 相关阅读:
    delphi中使用webservice
    软件需求阅读笔记之三
    软件需求模式阅读笔记之二
    软件需求与分析课堂讨论一
    软件需求模式阅读笔记之一
    课后作业01
    2016秋季个人阅读计划
    个人总结
    软件工程概论作业
    人月神话阅读笔记之三
  • 原文地址:https://www.cnblogs.com/hjw-zq/p/10626347.html
Copyright © 2011-2022 走看看