Spring junior

Какой способ DI предпочтительнее?

Ответ

Constructor injection. Поля можно сделать final, явно видны обязательные зависимости, легко тестировать без Spring-контекста.

Разбор: Constructor injection — стандарт де-факто: поля можно сделать final, обязательные зависимости видны в сигнатуре, а тестировать класс можно простым new Service(mock). Field injection прячет зависимости и требует рефлексии в тестах; setter не даёт final (поле должно меняться) и делает зависимость опциональной; ручной getBean из контекста — антипаттерн service locator, ломающий тестируемость и инверсию управления.

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

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