Middle
Se i bean sono dichiarati tramite @Configuration e @Bean, come funziona @Qualifier e qual è il nome del bean?
sobes.tech AI
Risposta dell'AI
Quando i bean sono dichiarati tramite @Configuration e @Bean, Spring li crea con nomi corrispondenti al nome del metodo che restituisce il bean. Ad esempio:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
In questo caso, il nome del bean è myService.
L'annotazione @Qualifier viene usata per specificare quale bean deve essere iniettato, se ci sono più bean dello stesso tipo nel contesto. Ad esempio:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Qui, @Qualifier indica a Spring di iniettare il bean con il nome myService2.
In questo modo, @Qualifier funziona per nome del bean, che di default corrisponde al nome del metodo che dichiara il bean, a meno che non venga specificato diversamente tramite il parametro name in @Bean.