关灯
开启左侧

举例说明@Qualifier注解

[复制链接]
意大利炮 发表于 2018-12-19 11:32:15 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 

@Qualifier注解意味着可以在被标注bean的字段上可以自动装配。Qualifier注解可以用来取消Spring不能取消的bean应用。

下面的示例将会在Customer的person属性中自动装配person的值。

  1. [java]
  2. public class Customer{   
  3.     @Autowired   
  4.     private Person person;   
  5. }   
复制代码
下面我们要在配置文件中来配置Person类。
  1. [html]
  2. <bean id="customer" class="com.somnus.common.Customer" />   
  3.      
  4. <bean id="personA" class="com.somnus.common.Person" >   
  5.     <property name="name" value="lokesh" />   
  6. </bean>   
  7.      
  8. <bean id="personB" class="com.somnus.common.Person" >   
  9.     <property name="name" value="alex" />   
  10. </bean>   
复制代码
Spring会知道要自动装配哪个person bean么?不会的,但是运行上面的示例时,会抛出下面的异常:
  1. [html]
  2. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:   
  3.     No unique bean of type [com.howtodoinjava.common.Person] is defined:   
  4.         expected single matching bean but found 2: [personA, personB]  
复制代码
要解决上面的问题,需要使用 @Quanlifier注解来告诉Spring容器要装配哪个bean:
  1. [java]
  2. public class Customer{   
  3.     @Autowired   
  4.     @Qualifier("personA")   
  5.     private Person person;   
  6. }  
复制代码


 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员

0关注

2粉丝

139帖子

排行榜
关闭

站长推荐上一条 /1 下一条

官方微信

全国服务热线:

400-0708-360

公司地址:国家西部信息安全产业基地(成都市高新区云华路333号)

邮编:610000    Email:2908503813@qq.com

Copyright   ©2015-2016  EOIT论坛Powered by©Discuz!    ( 蜀ICP备11000634号-7 )