Junior — Middle
137
Ako sa používa anotácia @Qualifier a v ktorých prípadoch sa aplikuje pri vkladáni závislostí v Springu?
Spoločnosti boli požiadané
Odpoveď od AI
sobes.tech AI
Аннотация @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:
- при наличии нескольких бинов одного типа;
- для явного указания нужного бина;
- для повышения читаемости и контроля внедрения зависимостей.