Sobes.tech
Middle

Si los beans se declaran mediante @Configuration y @Bean, ¿cómo funciona @Qualifier y cuál es el nombre del bean?

sobes.tech AI

Respuesta de la IA

Cuando los beans se declaran mediante @Configuration y @Bean, Spring los crea con nombres que corresponden al nombre del método que devuelve el bean. Por ejemplo:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

En este caso, el nombre del bean es myService.

La anotación @Qualifier se usa para especificar qué bean exactamente se debe inyectar, si hay varios beans del mismo tipo en el contexto. Por ejemplo:

@Bean
public MyService myService1() { ... }

@Bean
public MyService myService2() { ... }

@Autowired
@Qualifier("myService2")
private MyService service;

Aquí, @Qualifier indica a Spring que debe inyectar el bean con el nombre myService2.

De esta manera, @Qualifier funciona por nombre de bean, que por defecto coincide con el nombre del método que declara el bean, a menos que se especifique explícitamente otro nombre mediante el parámetro name en @Bean.