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

Как работает DI в Spring

DI (Dependency Injection) в Spring — это механизм внедрения зависимостей, при котором объекты не создают свои зависимости напрямую, а получают их из контейнера Spring.

Типы внедрения:

  1. Constructor Injection (рекомендуется):
java
@Service
public class UserService {
    private final UserRepository repository;
    
    @Autowired
    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}
  1. Setter Injection:
java
@Autowired
public void setRepository(UserRepository repository) {
    this.repository = repository;
}
  1. Field Injection (не рекомендуется из-за сложности тестирования):
java
@Autowired
private UserRepository repository;

Как работает:

  • Spring сканирует классы с аннотациями (@Component, @Service, @Repository и др.).
  • Создает бины и управляет их жизненным циклом.
  • Автоматически разрешает зависимости через @Autowired или конфигурацию в XML/JavaConfig.

Преимущества:

  • Уменьшает связанность кода.
  • Упрощает тестирование (можно мокировать зависимости).
  • Гибкость конфигурации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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