Middle
Ha a bean-eket a @Configuration és @Bean segítségével deklarálják, hogyan működik a @Qualifier és mi a bean neve?
sobes.tech MI
Válasz az MI-től
Amikor a bean-eket @Configuration és @Bean segítségével deklarálják, a Spring azoknak a metódusneveknek megfelelő neveket ad, amelyek a bean-et visszaadják. Például:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
Ebben az esetben a bean neve myService.
Az @Qualifier annotációt arra használják, hogy pontosan megadja, melyik bean-t kell beilleszteni, ha több ugyanilyen típusú bean van a kontextusban. Például:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Itt az @Qualifier azt jelzi a Springnek, hogy a myService2 nevű bean-t kell beilleszteni.
Így az @Qualifier a bean nevére működik, amely alapértelmezés szerint megegyezik a bean-t deklaráló metódus nevével, kivéve, ha más név van kifejezetten megadva a name paraméterrel az @Bean-ben.