6.1.1 提供带注解的限定符元数据
在第6.9.4节“使用@Qualifier微调基于注解的自动装配”中讨论了@Qualifier注解。该部分中的示例阐释了,在解析自动装配候选者的时候,使用@Qualifier注解和自定义限定符注解来提供细粒度的控制。因为这些是基于XML bean的定义的例子,所以为了在候选bean定义上提供限定符元数据,需要通过在XML中使用bean元素的qualifier或meta子元素。当依赖类路径扫描来自动检测组件时,您可以在候选类上为限定符元数据提供类型级别的注解。以下三个示例阐释了此技术:
@Component @Qualifier("Action") public class ActionMovieCatalog implements MovieCatalog { // ... }
@Component @Genre("Action") public class ActionMovieCatalog implements MovieCatalog { // ... }
@Component @Offline public class CachingMovieCatalog implements MovieCatalog { // ... }
与大多数基于注解的备选方案一样,请记住将注解元数据绑定到类定义本身上,而XML的使用允许多个相同类型的bean在其限定符元数据中提供变体,这是因为元数据是提供给每个实例而不是每个类的。