关于 Spring 注解容器配置的那些事,掌握这几点,不再难( 五 )


@Target({ElementType.FIELD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Qualifierpublic @interface Offline {}然后将注解添加到要自动装配的字段或属性上:
public class MovieRecommender {@Autowired@Offlineprivate MovieCatalog offlineCatalog;// ...}现在 bean 定义只需要一个限定符类型:

<bean class="example.SimpleMovieCatalog">
 
<qualifier type="Offline"/>
 
</bean>
你也可以定义接收命名属性之外的定制限定符注解或代替简单的值属性 。如果要注入的字段或参数指定了多个属性值 , bean 定义必须匹配所有的属性值才会被认为是一个可自动装配的候选目标 。作为一个例子 , 考虑下面的注解定义:
@Target({ElementType.FIELD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Qualifierpublic @interface MovieQualifier {String genre();Format format();}这种情况下Format是枚举类型:
public enum Format {VHS, DVD, BLURAY}要自动装配的字段使用定制限定符进行注解 , 并且包含了两个属性值:genre和format 。
public class MovieRecommender {
 
@Autowired




推荐阅读