Sobes.tech
Назад к вопросам
Junior — Middle
65

Каким образом осуществляется внедрение зависимости в приватное поле бина в Spring или аналогичной DI системе?

Компании, где спрашивали
ЛанитЛанит

Ответ от нейросети

sobes.tech AI

В Spring внедрение зависимости в приватное поле бина обычно осуществляется с помощью аннотации @Autowired прямо над полем. Spring использует рефлексию, чтобы установить значение приватного поля, даже если оно недоступно напрямую.

Пример:

@Component
public class MyService {
    @Autowired
    private DependencyBean dependency;

    public void doSomething() {
        dependency.action();
    }
}

Здесь dependency — приватное поле, в которое Spring внедрит экземпляр DependencyBean. Это работает благодаря механизмам Spring и Java Reflection API, которые позволяют устанавливать значения приватных полей без необходимости писать сеттеры или конструкторы.

Альтернативно, можно использовать внедрение через конструктор или сеттер, но внедрение в приватное поле с @Autowired — самый простой способ.