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 дигар нагуфта шавад.