Middle
Als beans worden gedeclareerd via @Configuration en @Bean, hoe werkt @Qualifier en wat is de naam van de bean?
sobes.tech AI
Antwoord van AI
Wanneer beans worden gedeclareerd via @Configuration en @Bean, maakt Spring ze aan met namen die overeenkomen met de naam van de methode die de bean retourneert. Bijvoorbeeld:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
In dit geval is de naam van de bean myService.
De annotatie @Qualifier wordt gebruikt om aan te geven welke bean precies moet worden geïnjecteerd, als er meerdere beans van hetzelfde type in de context zijn. Bijvoorbeeld:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Hier geeft @Qualifier aan Spring aan dat de bean met de naam myService2 moet worden geïnjecteerd.
Op deze manier werkt @Qualifier op basis van de naam van de bean, die standaard overeenkomt met de naam van de methode die de bean declareert, tenzij expliciet een andere naam wordt gespecificeerd via de parameter name in @Bean.