Назад к вопросам
Middle
28
Если бины объявлены через @Configuration и @Bean, как работает @Qualifier и каково имя бина?
Компании, где спрашивали
Позитив Технолоджис
Ответ от нейросети
sobes.tech AI
Когда бины объявлены через @Configuration и @Bean, Spring создает их с именами, соответствующими имени метода, который возвращает бин. Например:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
В этом случае имя бина — myService.
Аннотация @Qualifier используется для уточнения, какой именно бин нужно внедрить, если в контексте есть несколько бинов одного типа. Например:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Здесь @Qualifier указывает Spring, что нужно внедрить бин с именем myService2.
Таким образом, @Qualifier работает по имени бина, которое по умолчанию совпадает с именем метода, объявляющего бин, если явно не указано иное через параметр name в @Bean.