Назад к вопросам
Simbirsoft
Bell Integrator
Junior — Middle
68
Можете объяснить назначение и использование аннотации @Qualifier в Spring?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Аннотация @Qualifier в Spring используется для уточнения, какой именно бин должен быть внедрён, если в контексте есть несколько кандидатов одного типа.
Когда в приложении определено несколько бинов одного класса или интерфейса, Spring не может однозначно выбрать, какой из них внедрить при автосвязывании (@Autowired). Чтобы решить эту неоднозначность, применяется @Qualifier с указанием имени нужного бина.
Пример:
@Component("beanOne")
public class MyService implements ServiceInterface { }
@Component("beanTwo")
public class AnotherService implements ServiceInterface { }
@Component
public class Client {
private final ServiceInterface service;
@Autowired
public Client(@Qualifier("beanTwo") ServiceInterface service) {
this.service = service;
}
}
В этом примере @Qualifier("beanTwo") указывает, что нужно внедрить бин с именем "beanTwo".
Таким образом, @Qualifier помогает управлять выбором конкретного бина при множестве кандидатов одного типа.