Middle
Se os beans forem declarados através de @Configuration e @Bean, como funciona o @Qualifier e qual é o nome do bean?
sobes.tech IA
Resposta da IA
Quando os beans são declarados através de @Configuration e @Bean, o Spring cria-os com nomes que correspondem ao nome do método que retorna o bean. Por exemplo:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
Neste caso, o nome do bean é myService.
A anotação @Qualifier é usada para especificar qual bean exatamente deve ser injetado, se houver vários beans do mesmo tipo no contexto. Por exemplo:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Aqui, @Qualifier indica ao Spring que deve injetar o bean com o nome myService2.
Assim, @Qualifier funciona pelo nome do bean, que por padrão corresponde ao nome do método que declara o bean, a menos que seja especificado explicitamente outro nome através do parâmetro name em @Bean.