Spring trainee

Какие способы инъекции бинов есть?

Ответ

Field (через @Autowired на поле) — короткий, но плохой. Setter (через @Autowired на сеттере) — гибкий, но позволяет создать неполностью сконфигурированный объект. Constructor — лучший: final-поля, гарантированно полностью сконфигурированный объект и лёгкое тестирование без контейнера.

Разбор: Существуют field-, setter- и constructor-инъекции; предпочтительна конструкторная, потому что позволяет делать поля final, гарантирует полностью сконфигурированный объект и упрощает тестирование без контейнера. Ловушки: именно field injection не даёт final-полей и плох для тестов, а циклические зависимости как раз ломают конструкторную инъекцию и решаются через setter/@Lazy — в дистракторах эти свойства приписаны не тем способам.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться