Middle
Si les beans sont déclarés via @Configuration et @Bean, comment fonctionne @Qualifier et quel est le nom du bean?
sobes.tech IA
Réponse de l'IA
Lorsque les beans sont déclarés via @Configuration et @Bean, Spring les crée avec des noms correspondant au nom de la méthode qui retourne le bean. Par exemple :
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
Dans ce cas, le nom du bean est myService.
L'annotation @Qualifier est utilisée pour préciser quel bean doit être injecté, s'il y a plusieurs beans du même type dans le contexte. Par exemple :
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Ici, @Qualifier indique à Spring d'injecter le bean nommé myService2.
Ainsi, @Qualifier fonctionne par nom de bean, qui par défaut correspond au nom de la méthode déclarant le bean, sauf indication contraire via le paramètre name dans @Bean.