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