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

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

В Spring есть три основных способа внедрения зависимостей:

  1. Field Injection (через @Autowired над полем) - простой, но не рекомендуется из-за проблем с тестированием и неизменяемостью полей:
java
@Autowired
private SomeService service;
  1. Constructor Injection (через параметры конструктора) - предпочтительный способ, обеспечивает неизменяемость и явную зависимость:
java
private final SomeService service;

@Autowired
public MyClass(SomeService service) {
this.service = service;
}

text

3. **Setter Injection** (через сеттер-метод) - полезен для опциональных зависимостей или когда нужно переопределить зависимость:
```java
private SomeService service;

@Autowired
public void setService(SomeService service) {
    this.service = service;
}

Рекомендации:

  • Используйте Constructor Injection для обязательных зависимостей
  • Setter Injection - для опциональных
  • Избегайте Field Injection в production коде
  • Начиная с Spring 4.3, @Autowired на конструкторе можно опускать, если есть только один конструктор
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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