Предположим, у вас есть следующие классы, расширяющие интерфейс процессора:
Interface Processor {}
class ProcesorImpl1 implements Processor {}
class ProcesorImpl2 implements Processor {}
Теперь предположим, что вы определили следующий компонент в классе конфигурации в package1:
class ConfigurationClass1 {
@Bean
@Qualifier("processor")
public Processor processor() {
return new ProcesorImpl1();
}
}
Далее вы определяете следующий bean-компонент в классе конфигурации в package2:
class ConfigurationClass2 {
@Bean
@Qualifier("processor")
public Processor anotherProcessor() {
return new ProcesorImpl2();
}
}
Вопрос в том, как Spring разрешает следующую инъекцию:
@Inject @Qualifier("processor") proc;
Что если один из Бинов помечается @Primary?