2011-03-08 23 views
4

春天都有自己的Qualifier注释,我认为这是相当于javax.inject.Named注解,而这又是在JSR-330的具体限定。Spring上下文是否支持bean实例上的JSR-330限定符?

所以,我不知道这春天的版本,如果有的话,支持预选赛?

这里是我的使用例子,遗憾的是它不具有弹簧上下文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; 

} 
+0

它将为春天工作。看看这里我的帖子: http://stackoverflow.com/questions/42446870/jsr-330-qualifier-not-working-with-java-based-spring-configuration – sharath 2017-02-24 20:56:12

+0

@sharath链接是死 – thermite 2017-06-28 18:25:04

回答

6

是,它支持所有javax.inject.*注解。我自己已经使用了javax.inject.Qualifier

顺便说一句,我想你想@Service@Component代替@Bean,你需要你的Book类进行春季管理。

+0

D'哦。但我的例子不工作... - - – 2011-03-08 13:38:21

+0

@谢继雷“Lenik使用'@ Service'而不是'@ Bean' – Bozho 2011-03-08 13:39:38

+0

@Bozho:'@ Service'和'@ Component'是'ElementType.TYPE'针对性,但我不想创建额外的类型。所以,我猜'@ Bean'不会工作,对吧? – 2011-03-08 15:04:18

相关问题