Middle
Եթե բիները հայտարարվում են @Configuration և @Bean միջոցով, ինչպես է աշխատում @Qualifier և բինի անունը ինչ է?
sobes.tech AI
Պատասխան AI-ից
Երբ բիները հայտարարվում են @Configuration և @Bean միջոցով, Spring-ը ստեղծում է նրանց անուններով, որոնք համապատասխան են բինի վերադարձնող մեթոդի անվան։ Օրինակ՝
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
Այս դեպքում բինի անունը՝ myService։
@Qualifier նշումը օգտագործվում է հստակեցնելու, թե որ բինը պետք է ներդրվի, եթե կոնտեքստում միաժամանակ մի քանի նույն տիպի բիներ կան։ Օրինակ՝
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Այստեղ @Qualifier նշում է Spring-ին, որ պետք է ներդնել myService2 անունով բինը։
Այսպիսով, @Qualifier աշխատում է բինի անունով, որը ըստ նախնական կարգի համընկնում է բինի հայտարարող մեթոդի անվան հետ, եթե բացարձակապես այլ անուն նշված չէ name պարամետրի միջոցով @Bean-ում։