Spring有自己的Qualifier注解,我认为它等同于javax.inject.Named注解,而后者又是JSR-330中的一个具体限定符。
所以,我想知道哪个版本的Spring支持限定符?
以下是我的示例用法,不幸的是,它不能与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;
}发布于 2011-03-08 20:27:50
是的,它支持所有的javax.inject.*注解。我自己也用过javax.inject.Qualifier
顺便说一句,我假设你想要@Service或@Component而不是@Bean,并且你需要让你的Book类成为spring托管的。
https://stackoverflow.com/questions/5232353
复制相似问题