Встречается на собеседованиях • сегодня

Как нужно инжектить по полю интерфейс, у которого есть две реализации в 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 {...}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы