Spring IoC контейнер: внедрение зависимостей на основе конструктора

DI на основе конструктора выполняется контейнером, вызывающим конструктор с несколькими аргументами, каждый из которых представляет зависимость. Вызов статического метода фабрики со специфическими аргументами для создания компонента почти эквивалентен, и в этом обсуждении аргументы конструктора и статического метода фабрики аналогичны. В следующем примере показан класс, который может быть внедрен только в зависимости с помощью конструктора:

Java

public class SimpleMovieLister {

    // SimpleMovieLister имеет зависимость от MovieFinder
    private MovieFinder movieFinder;

    // конструктор, чтобы контейнер Spring мог внедрить MovieFinder
    public SimpleMovieLister(MovieFinder movieFinder) {
        this.movieFinder = movieFinder;
    }

    // бизнес-логика, которая фактически использует внедренный MovieFinder, опущена ...
}

Kotlin

// конструктор, чтобы контейнер Spring мог внедрить MovieFinder
class SimpleMovieLister(private val movieFinder: MovieFinder) {
    // бизнес-логика, которая фактически использует внедренный MovieFinder, опущена ...
}

Обратите внимание, что в этом классе нет ничего особенного. Это POJO, который не зависит от конкретных интерфейсов контейнера, базовых классов или аннотаций.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки