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

Почему предпочитаешь инъекции через конструктор в Spring

Внедрение зависимостей через конструктор в Spring предпочтительно по нескольким причинам:

  1. Неизменяемость - зависимости становятся final, что делает объект иммутабельным и thread-safe.
  2. Явность - все зависимости видны сразу при создании объекта.
  3. Тестируемость - упрощает юнит-тестирование, так как зависимости можно легко передать вручную.
  4. Циклические зависимости - Spring сразу обнаружит циклические зависимости при старте контекста.
  5. Обязательность - гарантирует, что объект не будет создан без необходимых зависимостей.

Пример:

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

    @Autowired // можно опустить начиная с Spring 4.3
    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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