Junior — Middle
Ako sa vykonáva injekcia závislostí do súkromného poľa beana v Spring alebo podobnom DI systéme?
sobes.tech AI
Odpoveď od 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 — самый простой способ.