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