7
У меня есть несколько бобов одного и того же класса, определенного:Как autowire по имени весной с аннотациями?
@Bean
public FieldDescriptor fullSpotField() {
FieldDescriptor ans = new FieldDescriptor("full_spot", String.class);
return ans;
}
@Bean
public FieldDescriptor annotationIdField() {
FieldDescriptor ans = new FieldDescriptor("annotationID", Integer.class);
return ans;
}
поэтому, когда я autowire их
@Autowired
public FieldDescriptor fullSpotField;
@Autowired
public FieldDescriptor annotationIdField;
я получаю исключение
NoUniqueBeanDefinitionException: No qualifying bean of type [...FieldDescriptor] is defined: expected single matching bean but found ...
Как autowire по имени, как это возможно в конфигурации XML?
Я обнаружил, что '@ Qualifier' не требуется рядом методы создания боба, достаточно добавьте эту аннотацию вместе с '@ Autowired' – Dims
@Dims Вы правы. Если в методе создания бина не задан «Квалификатор», он принимает имя метода ex, «fullSpotField» в качестве имени квалификатора для первого компонента. –