Middle
Dacă bean-urile sunt declarate prin @Configuration și @Bean, cum funcționează @Qualifier și care este numele bean-ului?
sobes.tech AI
Răspuns de la AI
Când bean-urile sunt declarate prin @Configuration și @Bean, Spring le creează cu nume care corespund numelui metodei care returnează bean-ul. De exemplu:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
În acest caz, numele bean-ului este myService.
Anotarea @Qualifier este folosită pentru a specifica exact ce bean trebuie injectat, dacă în context există mai multe beans de același tip. De exemplu:
@Bean
public MyService myService1() { ... }
@Bean
public MyService myService2() { ... }
@Autowired
@Qualifier("myService2")
private MyService service;
Aici, @Qualifier indică Spring să injecteze bean-ul cu numele myService2.
Astfel, @Qualifier funcționează pe baza numelui bean-ului, care în mod implicit corespunde cu numele metodei care declară bean-ul, cu excepția cazului în care se specifică altceva explicit prin parametrul name în @Bean.