Sobes.tech
Middle

Kui bean'id on deklareeritud @Configuration ja @Bean kaudu, kuidas töötab @Qualifier ja mis on bini nimi?

sobes.tech AI

Vastus AI-lt

Kui bean'id on deklareeritud kasutades @Configuration ja @Bean, loob Spring need nimedega, mis vastavad meetodi nimele, mis bean'i tagastab. Näiteks:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

Selles juhul on bean'i nimi myService.

@Qualifier annotatsioonit kasutatakse selleks, et täpsustada, millist bean'i täpselt tuleb sisestada, kui kontekstis on mitu sama tüüpi bean'i. Näiteks:

@Bean
public MyService myService1() { ... }

@Bean
public MyService myService2() { ... }

@Autowired
@Qualifier("myService2")
private MyService service;

Siin näitab @Qualifier Springile, et tuleb sisestada bean nimega myService2.

Seega töötab @Qualifier bean'i nime alusel, mis vaikimisi vastab meetodi nimele, mis bean'i deklareerib, välja arvatud juhul, kui on selgelt määratud teine nimi name parameetriga @Bean-is.