Встречается на собеседованиях • сегодня
В чем разница между способами внедрения зависимостей
В Java есть три основных способа внедрения зависимостей:
- Constructor Injection (рекомендуемый способ)
java
public class Service {
private final Dependency dependency;
public Service(Dependency dependency) {
this.dependency = dependency;
}
}- Гарантирует неизменяемость зависимостей
- Позволяет сделать зависимости final
- Явно показывает обязательные зависимости
- Setter Injection
java
public class Service {
private Dependency dependency;
public void setDependency(Dependency dependency) {
this.dependency = dependency;
}
}- Позволяет изменять зависимости после создания
- Подходит для опциональных зависимостей
- Field Injection (не рекомендуется)
java
public class Service {
@Autowired
private Dependency dependency;
}- Нарушает инкапсуляцию
- Затрудняет тестирование
- Скрывает зависимости
Лучшая практика - использовать конструкторное внедрение для обязательных зависимостей и сеттеры для опциональных. Field injection следует избегать.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы