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

Какой способ внедрения Bean предпочтительнее в Spring

В Spring предпочтительнее использовать внедрение через конструктор (@Autowired на конструкторе или без аннотации, если только один конструктор). Это обеспечивает:

  1. Неизменяемость – поля можно сделать final.
  2. Безопасность NPE – зависимости проверяются при создании бина.
  3. Тестируемость – проще мокировать зависимости в unit-тестах.

Пример:

java
@Service
public class UserService {
    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}

Альтернативы (setter/field injection) менее надежны:

  • Field injection скрывает зависимости и усложняет тестирование.
  • Setter injection допускает частичную инициализацию бина.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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