Встречается на собеседованиях • сегодня
Какие знаешь правильные способы внедрения зависимостей в Spring
В Spring есть три основных способа внедрения зависимостей:
- Через конструктор (рекомендуемый способ)
java
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}- Через сеттер
java
@Service
public class UserService {
private UserRepository userRepository;
@Autowired
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
}- Через поле (не рекомендуется, нарушает инкапсуляцию)
java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
}Лучшая практика - использовать внедрение через конструктор, так как:
- Делает зависимости явными
- Позволяет делать поля final
- Упрощает тестирование
- Соответствует принципам immutable объектов
Начиная с Spring 4.3, @Autowired на конструкторе можно опускать, если в классе только один конструктор.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы