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