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