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

Пишешь ли явно аннотацию Autowired

В современных версиях Spring (начиная с 4.3) аннотация @Autowired не обязательна для конструкторов. Если в классе только один конструктор, Spring автоматически будет использовать его для инъекции зависимостей.

Однако явное указание @Autowired может быть полезно для:

  1. Читаемости кода - явно показывает инъекцию зависимостей
  2. Когда есть несколько конструкторов и нужно указать, какой использовать
  3. В случаях, когда инъекция не через конструктор (поле или метод)

Пример без @Autowired (работает в Spring 4.3+):

java
@Service
public class MyService {
    private final MyRepository repository;
    
    public MyService(MyRepository repository) {
        this.repository = repository;
    }
}

Пример с @Autowired:

java
@Service
public class MyService {
    @Autowired
    private MyRepository repository;
}

Лучшей практикой считается использование конструкторов без @Autowired для обязательных зависимостей, так как это делает зависимости явными и позволяет делать поля final.

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

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

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

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