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.