您的位置:首页 > 编程语言 > Java开发

Spring @qualifier @Required

2015-08-03 00:00 211 查看
摘要: Spring @qualifier @Required

B、@Qualifier
org.springframework.beans.factory.annotation.Qualifier
public @interface Qualifier
This annotation may be used on a field or parameter as a qualifier for candidate beans when autowiring. It may also be used to annotate other custom annotations that can then in turn be used as qualifiers.
@Qualifier用于注释一个字段或参数,当自动绑定时它作为候选bean的限定器。它也可以用于自定义的限定器注释。

属性
value

B.1、举例说明
我们使用@AutoWired按照类型自动绑定,当容器中有多个匹配的bean时,将绑定那一个呢?我们可以通过在需要绑定的字段或参数上使用@Qualifier(value=” bar1”)来指定要绑定的bean。并在bean定义中使用<bean id="bar1"或<qualifier value="bar1"/>来关联。

范例1
1.Foo

Java代码


public class Foo {

@Autowired

@Qualifier(value="bar1")

private Bar bar;

}

2.配置文件
配置文件中有2个Bar,一个bean使用qualifier进行标注,一个使用id进行标注,容器将选择和@Qualifier(value)匹配的bean来进行绑定。

Xml代码


<beans>

<context:annotation-config/>

<bean id="foo" class="x.y.Foo" />

<bean class="x.y.Bar">

<qualifier value="bar2"/>

<property name="a" value="bar2" />

</bean>

<bean id="bar1" class="x.y.Bar">

<property name="a" value="bar1" />

</bean>

</beans>

C、@Required
org.springframework.beans.factory.annotation.Required
public @interface Required
Marks a method (typically a JavaBean setter method) as being 'required': that is, the setter method must be configured to be dependency-injected with a value.
标注一个方法(通常是一个JavaBean的setter方法)是@Required,也就是,这个setter方法必须定义为通过一个值来依赖注入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息