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

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