Вопрос проверяет понимание принципов проектирования и управления зависимостями.
Dependency Injection — это подход, при котором объект получает зависимости извне, а не создаёт их сам. Это снижает связность кода. Такой подход упрощает тестирование и расширение приложения. В Spring внедрение зависимостей выполняет контейнер.
Dependency Injection является одним из ключевых принципов современного Java-разработчика.
Dependency Injection — это принцип, при котором зависимости передаются объекту извне, а не создаются внутри него.
Это позволяет отделить бизнес-логику от инфраструктуры.
В Spring используются следующие варианты:
Через конструктор
Через сеттеры
Через поля (менее рекомендуется)
Пример через конструктор:
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
}
Использование DI даёт:
Слабую связанность компонентов
Удобное модульное тестирование
Простую замену реализаций
Dependency Injection делает код гибким, тестируемым и хорошо масштабируемым, поэтому активно используется в Spring-приложениях.