Middle
41
questionbank

Почему в современном Spring нет необходимости указывать аннотацию @Autowired?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Начиная с Spring 4.3, если у класса только один конструктор, Spring автоматически внедряет зависимости через этот конструктор, даже без @Autowired.

При наличии нескольких конструкторов Spring по-прежнему требует аннотацию @Autowired для явного указания, какой конструктор использовать для внедрения зависимостей.

Пример с единственным конструктором:

java

Пример с несколькими конструкторами и @Autowired:

java

Эта особенность снижает количество boilerplate-кода и делает классы более читаемыми, особенно при Constructor Injection. Это рекомендуемый способ внедрения зависимостей в современных Spring приложениях, так как он способствует созданию неизменяемых объектов и упрощает тестирование.