Sobes.tech
Senior
52

Spring, bir arayüzün tüm uygulamalarını nasıl enjekte eder?

Sorulan şirketler
EXPERA

AI'dan gelen yanıt

sobes.tech yapay zeka

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