Поддерживает ли Spring-контекст спецификатор JSR-330 в экземплярах bean-компонентов?
Весна имеет свои 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;
}
1 ответ
Решение
Да, он поддерживает все javax.inject.*
аннотаций. Я сам использовал javax.inject.Qualifier
Кстати, я полагаю, вы хотите @Service
или же @Component
вместо @Bean
и вам нужен ваш Book
класс должен быть сделан пружинным.