Back to questions
Middle
15
Какие способы внедрения зависимостей есть в Spring? Какой предпочтительный?
Companies where asked
Позитив Технолоджис
Answer from AI
sobes.tech AI
В Spring внедрение зависимостей (Dependency Injection, DI) можно реализовать тремя основными способами:
-
Через конструктор — зависимости передаются через параметры конструктора класса. Это позволяет создавать неизменяемые объекты и облегчает тестирование.
-
Через сеттеры (setters) — зависимости устанавливаются через методы установки после создания объекта.
-
Через поля (field injection) — зависимости внедряются напрямую в поля класса с помощью аннотаций.
Предпочтительным считается внедрение через конструктор, так как оно обеспечивает:
- Явное объявление всех зависимостей
- Иммутабельность объекта после создания
- Легкость тестирования и поддержки кода
Пример внедрения через конструктор:
@Component
public class Service {
private final Repository repository;
@Autowired
public Service(Repository repository) {
this.repository = repository;
}
}