java – spring-context是否支持bean实例上的JSR-330限定符?
作者:互联网
Spring有自己的Qualifier注释,我认为它等同于javax.inject.Named注释,而javax.inject.Named注释又是JSR-330中的具体限定符.
那么,我想知道Spring的哪个版本(如果有的话)支持Qualifier?
这是我的示例用法,遗憾的是它不适用于spring-context 3.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;
}
解决方法:
是的,它支持所有javax.inject.*注释.我自己使用了javax.inject.Qualifier
顺便说一句,我假设你想要@Service或@Component而不是@Bean,你需要让你的Book类被弹簧管理.
标签:java,spring,qualifiers,jsr330 来源: https://codeday.me/bug/20190531/1188281.html