我明白这个问题相当古老,但这是自Spring 2.5以来应该能够完成的事情。
您可以使用@Qualifier
(注解组合的一种形式)创建自己的注释,注释本身是注释的。春天将尊重这些预选赛,就像他们自己一样。
考虑这两个注释类型,同样命名您例如:
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface MyOrderQualifier {
}
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface MyUrlQualifier {
}
你应该能够在你的领域同时使用这两个注释,因为它们是独立的注解。
@Autowired
@MyOrderQualifier
@MyUrlQualifier
private Serializer<Order> orderSerializer;
这里是链接到Spring 2.5 reference documentation解释这个过程。请注意,它适用于Spring 2.5,并且可能会针对更新版本的Spring过时。
即使您被允许使用多个注释,也无法在bean定义本身上指定多个限定符,因此您不会再进一步转发。 – skaffman 2010-08-18 18:18:04
@skaffman这是可能的,是确切的 - http://stackoverflow.com/questions/2902335/instantiating-multiple-beans-of-the-same-class-with-spring-annotations,但我当然不会建议解决方案在生产代码中使用:) – wax 2010-08-18 20:15:37