Springには独自のアノテーションがあります。これは、JSR-330の具体的な修飾子であるアノテーションとQualifier
同等だと思います。javax.inject.Named
では、SpringのどのバージョンがQualifierをサポートしているのでしょうか。
これが私の使用例ですが、残念ながら、spring-context3.0.5では機能しません。
@Retention(RUNTIME)
@javax.inject.Qualifier
public @interface Version {
String value();
}
@Configuration
public class MyConfig {
@Bean("book-12") @Version("a") Book book12a() { ... }
@Bean("book-12") @Version("b") Book book12b() { ... }
}
@Component
public class UserClass {
@Inject @Named("book-12") Book anybook12;
@Inject @Named("book-12") @Version("b") Book book12_b;
}