Sobes.tech
Middle

Jeśli beany są deklarowane za pomocą @Configuration i @Bean, jak działa @Qualifier i jaka jest nazwa beana?

sobes.tech AI

Odpowiedź od AI

Gdy ziarna są deklarowane za pomocą @Configuration i @Bean, Spring tworzy je z nazwami odpowiadającymi nazwie metody zwracającej ziarno. Na przykład:

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

W tym przypadku nazwa ziarna to myService.

Adnotacja @Qualifier służy do określenia, które dokładnie ziarno ma zostać wstrzyknięte, jeśli w kontekście jest kilka ziarien tego samego typu. Na przykład:

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

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

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

Tutaj @Qualifier wskazuje Spring, że ma wstrzyknąć ziarno o nazwie myService2.

W ten sposób @Qualifier działa na podstawie nazwy ziarna, która domyślnie jest zgodna z nazwą metody deklarującej ziarno, chyba że wyraźnie określono inną nazwę za pomocą parametru name w @Bean.