3.10.8 为注解提供标示符Qualifier
“@Qualifier”注解在Section 3.9.4, “Fine-tuning annotation-based autowiring with qualifiers”讨论过.。 该部分中的示例演示了在解析自动注入候选者时使用 @Qualifier
注解和自定义限定符注解以提供细粒度控制。 因为这些示例基于XML bean定义,所以使用XML中的bean
元素的qualifier
或meta
子元素在候选bean定义上提供了限定符元数据。 当依靠classpath扫描并自动检测组件时,你可以在候选类上提供具有类型级别注解的限定符元数据(you provide the qualifier metadata with type-level annotations on the candidate class. )。 以下三个示例演示了此技术:
@Component
@Qualifier("Action")
public class ActionMovieCatalog implements MovieCatalog {
// ...
}
@Component
@Genre("Action")
public class ActionMovieCatalog implements MovieCatalog {
// ...
}
@Component
@Offline
public class CachingMovieCatalog implements MovieCatalog {
// ...
}
与大多数基于注解的替代方法一样,请注意,注解元数据绑定到类定义本身,而使用xml的时候,允许同一类型的beans在qualifieer元数据中提供变量,因为元数据是依据实例而不是类来提供的。 |