Sobes.tech
Senior
65

Wie injiziert Spring alle Implementierungen eines Interfaces in einen Service?

Unternehmen wurden gefragt
EXPERA

Antwort von AI

sobes.tech KI

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, и передаст их в конструктор в виде списка. Это удобно для плагинов или расширяемых компонентов.