一尘不染

Java 如何在Spring中将依赖项注入到自实例对象中?

java

假设我们有一个课程:

public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

然后,我们创建了此类的对象(或者其他一些框架也创建了此类的实例)。

MyClass obj = new MyClass();

是否仍然可以注入依赖项?就像是:

applicationContext.injectDependencies(obj);

阅读 394

收藏
2020-03-18

共1个答案

一尘不染

你可以使用的autowireBean()方法执行此操作AutowireCapableBeanFactory。你将其传递给一个任意对象,Spring会像对待它自己创建的对象一样对待它,并将应用各种自动装配的片段。

要掌握AutowireCapableBeanFactory,只需自动连线即可:

private @Autowired AutowireCapableBeanFactory beanFactory;

public void doStuff() {
   MyBean obj = new MyBean();
   beanFactory.autowireBean(obj);
   // obj will now have its dependencies autowired.
}
2020-03-18