Встречается на собеседованиях • сегодня
Как нужно инжектить по полю интерфейс, у которого есть две реализации в Spring
В Spring при наличии двух реализаций интерфейса нужно использовать @Qualifier для указания конкретного бина. Альтернативно можно использовать @Primary для одной из реализаций, сделав её приоритетной.
Пример:
java
@Service
public class MyService {
@Autowired
@Qualifier("firstImpl")
private MyInterface dependency;
}
// Или через конструктор:
@Service
public class MyService {
private final MyInterface dependency;
text
public MyService(@Qualifier("secondImpl") MyInterface dependency) {
this.dependency = dependency;
}}
text
Бины должны быть помечены соответствующими `@Qualifier`:
```java
@Component
@Qualifier("firstImpl")
public class FirstImpl implements MyInterface {...}
@Component
@Qualifier("secondImpl")
public class SecondImpl implements MyInterface {...}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы