Sobes.tech
Назад к вопросам
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 помогает явно указать, какой бин должен быть внедрён, когда по типу определить однозначно нельзя.