Назад к вопросам
Senior
6
Как Spring инжектирует все реализации интерфейса в сервис?
Компании, где спрашивали
EXPERA
Ответ от нейросети
sobes.tech AI
Spring может инжектировать все реализации интерфейса в сервис с помощью коллекций, например, List или Set. Для этого в сервисе объявляют поле или параметр конструктора с типом коллекции интерфейса, и Spring автоматически подставит все бины, реализующие этот интерфейс.
Пример:
@Service
public class MyService {
private final List<MyInterface> implementations;
public MyService(List<MyInterface> implementations) {
this.implementations = implementations;
}
public void doWork() {
for (MyInterface impl : implementations) {
impl.execute();
}
}
}
Здесь Spring найдет все бины, реализующие MyInterface, и передаст их в конструктор в виде списка. Это удобно для плагинов или расширяемых компонентов.