Назад к вопросам
Junior — Middle
68
Объясните концепцию внедрения зависимостей в Spring и как она реализуется
Компании, где спрашивали
МеталлИнвестБанк
Ответ от нейросети
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) в Spring — это способ управления зависимостями объектов, при котором контейнер Spring отвечает за создание и связывание объектов, а не сам объект создает или ищет свои зависимости.
Основные способы реализации DI в Spring:
- Через конструктор — зависимости передаются через параметры конструктора.
- Через сеттеры — зависимости устанавливаются через методы-сеттеры.
- Через поля с аннотацией @Autowired — Spring автоматически внедряет нужные бины.
Пример внедрения через аннотацию:
@Component
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
Здесь Spring сам создаст экземпляр UserRepository и передаст его в конструктор UserService. Это позволяет легко менять реализации зависимостей, упрощает тестирование и повышает модульность кода.