Поддерживает ли контекст Spring JSR-330 Qualifier в экземплярах bean-компонентов? - PullRequest
4 голосов
/ 08 марта 2011

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;

}

1 Ответ

6 голосов
/ 08 марта 2011

Да, он поддерживает все javax.inject.* аннотации. Я сам использовал javax.inject.Qualifier

Кстати, я полагаю, что вы хотите @Service или @Component вместо @Bean, и вам нужно, чтобы ваш класс Book стал подпружиненным.

...