У меня есть пользовательская аннотация квалификатора
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface MyQualifier {
MyQualiferEnum value();
}
И некоторые бины
@Component
@Scope("prototype")
@MyQualifier(MyQualifierEnum.BLACK)
public class BlackBean {
@Component
@Scope("prototype")
@MyQualifier(MyQualifierEnum.WHITE)
public class WhiteBean {
Я пытаюсь @Lookup, но это зависит от имени или класса бина, и я не могу передать аннотацию иэто приписывает метод поиска
Тогда я пытаюсь
context.getgetBeansWithAnnotation(MyQualifier.class)
, но это приводит ко всем экземплярам бина @MyQualifier, что хуже для меня.
Я не могу представить @MyQualifierBlack, @MyQualiferWhite и т. Д. - отдельные аннотации, мне точно нужно перечисление, поэтому как я могу внедрить эти bean-объекты-прототипы, зависит от значения MyQualifierEnum, например MyQualifierEnum.BLACK, во время выполнения без ненужной инициализации других аннотированных bean-компонентов @MyQualifier?