Sobes.tech
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.