@qualifier注解

@Qualifier限定哪个bean应该被自动注入。当Spring无法判断出哪个bean应该被注入时,@Qualifier注解有助于消除歧义bean的自动注入。参见下面的例子,

public class Staff{    
    @Autowired    
    private user user;
}

我们有两个bean定义为Person类的实例。

<beanid="staff"class="com.test.Staff"/>

<beanid="user1"class="com.test.User">
<property name="name"value="zhangsan"/></bean>

<beanid="user2"class="com.test.User">
<property name="name"value="lisi"/></bean>


Spring 知道哪个bean应该自动注入?不。当您运行上面的例子时,抛出如下异常:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:    No unique bean of type [com.test.User] is defined:       expected single matching bean but found2: [user1, user2]

要解决以上问题,你需要使用@Quanlifier注解告诉Spring 哪个bean应该被autowired的。

public class Staff
{
    @Autowired
    @Qualifier("user1")
    private User user;
}

 


版权声明:本文为u010931123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。