Middle
Jeśli beany są deklarowane za pomocą @Configuration i @Bean, jak działa @Qualifier i jaka jest nazwa beana?
sobes.tech AI
Odpowiedź od AI
Gdy ziarna są deklarowane za pomocą @Configuration i @Bean, Spring tworzy je z nazwami odpowiadającymi nazwie metody zwracającej ziarno. Na przykład:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
W tym przypadku nazwa ziarna to myService.
Adnotacja @Qualifier służy do określenia, które dokładnie ziarno ma zostać wstrzyknięte, jeśli w kontekście jest kilka ziarien tego samego typu. Na przykład:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Tutaj @Qualifier wskazuje Spring, że ma wstrzyknąć ziarno o nazwie myService2.
W ten sposób @Qualifier działa na podstawie nazwy ziarna, która domyślnie jest zgodna z nazwą metody deklarującej ziarno, chyba że wyraźnie określono inną nazwę za pomocą parametru name w @Bean.