Back to questions
Junior — Middle
64
Каким образом реализована принцип Dependency Injection в рамках фреймворка Spring?
Answer from AI
sobes.tech AI
В Spring принцип Dependency Injection (DI) реализован через контейнер инверсии управления (IoC Container), который управляет созданием и связыванием объектов (бинов). Основные способы внедрения зависимостей в Spring:
- Через конструктор — зависимости передаются в конструктор класса.
- Через сеттеры — зависимости устанавливаются через методы-сеттеры.
- Через поля с аннотацией
@Autowired— Spring автоматически внедряет нужные бины.
Spring сканирует классы, помеченные аннотациями (@Component, @Service, @Repository и др.), создает их экземпляры и внедряет зависимости, основываясь на конфигурации (XML, Java-конфигурация или аннотации).
Пример внедрения через конструктор:
@Component
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
// методы
}
Таким образом, Spring управляет жизненным циклом объектов и их зависимостями, что упрощает тестирование и поддержку кода.