Sobes.tech
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-ում։