Spring trainee
Какие способы инъекции бинов есть?
Ответ
Field (через @Autowired на поле) — короткий, но плохой. Setter (через @Autowired на сеттере) — гибкий, но позволяет создать неполностью сконфигурированный объект. Constructor — лучший: final-поля, гарантированно полностью сконфигурированный объект и лёгкое тестирование без контейнера.
Разбор: Существуют field-, setter- и constructor-инъекции; предпочтительна конструкторная, потому что позволяет делать поля final, гарантирует полностью сконфигурированный объект и упрощает тестирование без контейнера. Ловушки: именно field injection не даёт final-полей и плох для тестов, а циклические зависимости как раз ломают конструкторную инъекцию и решаются через setter/@Lazy — в дистракторах эти свойства приписаны не тем способам.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.