Sobes.tech
Назад к вопросам
Junior — Middle
68

Каким образом аннотация @Qualifier влияет на выбор бина в контексте внедрения зависимостей?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Аннотация @Qualifier в Java используется для уточнения, какой именно бин должен быть внедрён, когда в контексте существует несколько кандидатов одного типа.

Без @Qualifier контейнер внедрения зависимостей (например, Spring) не сможет однозначно выбрать бин и выдаст ошибку из-за неоднозначности.

Пример:

@Component
@Qualifier("fastService")
public class FastService implements Service {}

@Component
@Qualifier("slowService")
public class SlowService implements Service {}

@Autowired
@Qualifier("fastService")
private Service service;

В этом примере @Qualifier("fastService") указывает, что нужно внедрить именно бин с этим именем, а не другой бин типа Service.