Встречается на собеседованиях • сегодня

Какие плюсы и минусы внедрения Bean через поле в Spring

Плюсы:

  1. Простота и лаконичность - аннотация @Autowired над полем делает код компактным.
  2. Уменьшает количество шаблонного кода (не нужны сеттеры/конструкторы).
  3. Легко читается и понимается, особенно для простых случаев.

Минусы:

  1. Нарушает принцип инверсии зависимостей - сложнее подменять зависимости для тестов.
  2. Скрывает зависимости - без рефлексии не видно, какие бины требуются.
  3. Затрудняет создание immutable объектов (поля final нельзя так инициализировать).
  4. Может привести к NPE, если зависимость не найдена и не проверена.

Пример:

java
@Service
public class MyService {
    @Autowired  // Минус: зависимость скрыта
    private MyRepository repo;  // Плюс: код компактный
    
    public void doWork() {
        repo.save(data);  // Риск NPE, если Spring не внедрит
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы