Sobes.tech
Назад к вопросам
Junior — Middle
68

Объясните концепцию внедрения зависимостей в Spring и как она реализуется

Компании, где спрашивали
МеталлИнвестБанк

Ответ от нейросети

sobes.tech AI

Внедрение зависимостей (Dependency Injection, DI) в Spring — это способ управления зависимостями объектов, при котором контейнер Spring отвечает за создание и связывание объектов, а не сам объект создает или ищет свои зависимости.

Основные способы реализации DI в Spring:

  1. Через конструктор — зависимости передаются через параметры конструктора.
  2. Через сеттеры — зависимости устанавливаются через методы-сеттеры.
  3. Через поля с аннотацией @Autowired — Spring автоматически внедряет нужные бины.

Пример внедрения через аннотацию:

@Component
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

Здесь Spring сам создаст экземпляр UserRepository и передаст его в конструктор UserService. Это позволяет легко менять реализации зависимостей, упрощает тестирование и повышает модульность кода.