Встречается на собеседованиях • сегодня
Какой способ внедрения зависимостей предпочтительнее
В Java предпочтительнее использовать внедрение через конструктор (Constructor Injection), так как:
- Делает зависимости явными и обязательными
- Позволяет сделать поля final (неизменяемыми)
- Упрощает тестирование (можно передавать mock-объекты)
- Соответствует принципу SOLID (D - Dependency Inversion)
Пример:
java
public class OrderService {
private final PaymentGateway paymentGateway;
private final InventoryService inventoryService;
public OrderService(PaymentGateway paymentGateway,
InventoryService inventoryService) {
this.paymentGateway = paymentGateway;
this.inventoryService = inventoryService;
}
}Setter Injection и Field Injection имеют недостатки:
- Setter: зависимости могут быть не установлены
- Field: сложнее тестировать, нарушает инкапсуляцию
Spring с версии 4.3+ автоматически внедряет зависимости через конструктор, если он один.

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