Sobes.tech
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.