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

Какие плюсы и минусы @Autowired

Плюсы:

  • Упрощает внедрение зависимостей, уменьшая boilerplate-код (не нужно создавать сеттеры/конструкторы вручную).
  • Позволяет быстро разрабатывать, так как Spring сам управляет зависимостями.
  • Поддерживает разные способы внедрения: через поле, конструктор или метод.

Минусы:

  • Может скрывать зависимости класса, усложняя понимание кода.
  • Тестирование усложняется, так как зависимости "зашиты" в Spring-контекст.
  • Полевое внедрение (через @Autowired над полем) нарушает инкапсуляцию и усложняет мокирование.

Пример:

java
// Хорошо - внедрение через конструктор
@Service
public class UserService {
    private final UserRepository repository;

    @Autowired  // можно опустить в новых версиях Spring
    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}

Лучше использовать конструкторное внедрение — оно явное и immutable.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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