Junior — Middle
108
Mi a szerepe az @Qualifier annotációnak a Springben történő függőséginjektálás kontextusában?
Válasz az MI-től
sobes.tech MI
Аннотация @Qualifier в Spring используется для уточнения, какой именно бин должен быть внедрён, когда в контексте существует несколько кандидатов одного типа. Это помогает избежать неоднозначности при автосвязывании зависимостей.
Например, если у вас есть два бина, реализующих один интерфейс, вы можете пометить их разными именами и указать нужный бин с помощью @Qualifier:
@Component
@Qualifier("firstService")
public class FirstService implements MyService {}
@Component
@Qualifier("secondService")
public class SecondService implements MyService {}
@Service
public class Consumer {
private final MyService myService;
public Consumer(@Qualifier("secondService") MyService myService) {
this.myService = myService;
}
}
Таким образом, @Qualifier помогает явно указать, какой бин должен быть внедрён, когда по типу определить однозначно нельзя.