Middle
Ak sú beany deklarované cez @Configuration a @Bean, ako funguje @Qualifier a aké je meno beana?
sobes.tech AI
Odpoveď od AI
Keď sú záznamy deklarované pomocou @Configuration a @Bean, Spring ich vytvára s názvami, ktoré zodpovedajú názvu metódy, ktorá vracia záznam. Napríklad:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
V tomto prípade je názov záznamu myService.
Anotácia @Qualifier sa používa na upresnenie, ktorý presne záznam má byť vložený, ak je v kontexte niekoľko záznamov rovnakého typu. Napríklad:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Tu @Qualifier hovorí Springu, že má vložiť záznam s názvom myService2.
Týmto spôsobom @Qualifier funguje podľa názvu záznamu, ktorý štandardne zodpovedá názvu metódy, ktorá záznam deklaruje, ak nie je výslovne uvedené inak prostredníctvom parametra name v @Bean.