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-ში.