Назад к вопросам
Junior — Middle
64
Какова роль аннотации @Qualifier в контексте внедрения зависимостей в Spring?
Ответ от нейросети
sobes.tech AI
Аннотация @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 помогает явно указать, какой бин должен быть внедрён, когда по типу определить однозначно нельзя.