在Spring中,我可以从autowired bean中自动assembly新bean吗?

我通常只是将@Autowire的东西变成spring的物体。 但是我遇到了一种情况,我需要动态创建一些需要可以自动assembly的值的对象。

我该怎么办? 我能做的只是手动将自动assembly的值传递给新对象的构造函数。 我想做的就是在创建它时自动assembly每个新对象。

@Service public class Foo { @Autowired private Bar bar; /** This creates Blah objects and passes in the autowired value. */ public void manuallyPassValues() { List blahs = new LinkedList(); for(int i=0; i<5; ++i) { Blah blah = new Blah(bar); blahs.add(blah); } // ... } /** This creates Blah objects and autowires them. */ public void useAutowire() { List blahs = new LinkedList(); for(int i=0; i<5; ++i) { // How do I implement the createAutowiredObject method? Blah blah = createAutowiredObject(Blah.class); blahs.add(blah); } // ... } } 

理想情况下,我在这个bean中没有任何配置信息。 它是自动assembly的,因此通过自动assembly它们可以使用任何需要对新bean进行自动assembly的对象。

您可以使用AutowireCapableBeanFactory

 @Service public class Foo { @Autowired private AutowireCapableBeanFactory factory; private  T createAutowiredObject(Class c) { return factory.createBean(c); } ... }