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.