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