Встречается на собеседованиях • сегодня
Почему не следует внедрять зависимости через поля
Внедрение зависимостей через поля (field injection) считается плохой практикой по нескольким причинам:
- Тестирование сложнее - нельзя передать mock-объект в приватное поле без рефлексии
- Неявная зависимость - класс скрывает свои зависимости, что усложняет понимание кода
- Нарушение инкапсуляции - зависимости становятся частью состояния объекта, хотя должны быть внешними
- Проблемы с final - поля не могут быть final, что снижает безопасность потоков
Лучше использовать конструкторный или сеттерный injection:
java
// Хороший вариант - конструкторный injection
@Service
public class UserService {
private final UserRepository repository;
@Autowired
public UserService(UserRepository repository) {
this.repository = repository;
}
}Конструкторный injection делает зависимости явными, позволяет делать поля final и упрощает тестирование.

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