Sobes.tech
Junior — Middle
147

Kako se koristi anotacija @Qualifier i u kojim slučajevima se primenjuje pri ubacivanju zavisnosti u Spring?

Компаније где су питане
СБЕРСБЕР
СБЕР дейвайсыСБЕР дейвайсы
SimbirsoftSimbirsoft

Одговор од АИ

sobes.tech АИ

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

Когда у вас есть несколько реализаций одного интерфейса или класса, и вы используете @Autowired, Spring не сможет однозначно выбрать нужный бин и выбросит исключение. Чтобы решить эту проблему, применяют @Qualifier.

Пример:

@Component
public class ServiceA implements MyService {}

@Component
public class ServiceB implements MyService {}

@Component
public class Client {
    private final MyService myService;

    @Autowired
    public Client(@Qualifier("serviceA") MyService myService) {
        this.myService = myService;
    }
}

Здесь @Qualifier("serviceA") указывает, что нужно внедрить бин с именем serviceA.

Используют @Qualifier:

  • при наличии нескольких бинов одного типа;
  • для явного указания нужного бина;
  • для повышения читаемости и контроля внедрения зависимостей.