Sobes.tech
Middle

Jei bean'ai yra deklaruojami naudojant @Configuration ir @Bean, kaip veikia @Qualifier ir koks yra bean'o pavadinimas?

sobes.tech AI

Atsakymas iš AI

Kai bean'ai deklaruojami naudojant @Configuration ir @Bean, Spring juos sukuria su pavadinimais, atitinkančiais metodą, kuris grąžina bean'ą. Pavyzdžiui:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

Šiuo atveju, bean'o pavadinimas yra myService.

@Qualifier anotacija naudojama nurodyti, kuris tiksliai bean'as turi būti įdiegiamas, jei kontekste yra keli tokio paties tipo bean'ai. Pavyzdžiui:

@Bean
public MyService myService1() { ... }

@Bean
public MyService myService2() { ... }

@Autowired
@Qualifier("myService2")
private MyService service;

Čia, @Qualifier nurodo Spring, kad turi būti įdiegta myService2 pavadinimo bean'as.

Taip, @Qualifier veikia pagal bean'o pavadinimą, kuris pagal numatytuosius nustatymus sutampa su metodo, kuris deklaruoja bean'ą, pavadinimu, jei nėra aiškiai nurodyta kitaip per name parametrą @Bean.