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