spring-context是否支持bean实例上的JSR-330 Qualifier?

Xiè*_*léi 4 java spring qualifiers jsr330

Spring有自己的Qualifier注释,我认为它等同于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;

}
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 6

是的,它支持所有javax.inject.*注释.我自己也用过javax.inject.Qualifier

顺便说一句,我认为你想要@Service@Component代替@Bean,你需要你的Book班级由春季管理.