我明白這個問題相當古老,但這是自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