Java Spring:使用工厂bean创建任意数量的bean
我有一个factory-ishbean,它在启动时创建许多对象,我希望这些对象本身就是springbean 如果我创建单个对象,我可以使用工厂方法进行实例化,例如(来自Spring文档第4.3.2.3节):Java Spring:使用工厂bean创建任意数量的bean,java,spring,Java,Spring,我有一个factory-ishbean,它在启动时创建许多对象,我希望这些对象本身就是springbean 如果我创建单个对象,我可以使用工厂方法进行实例化,例如(来自Spring文档第4.3.2.3节): 如果我提前知道我会有n个对象,我可以调用n个不同的方法,但我没有——我的工厂会创建任意数量的对象,而这些对象在时间之前是未知的 有人知道怎么做吗 目标是让它们成为“合适的”春豆,就像上面所说的那样;具体来说,它们应该可以作为源和目标进行自动布线。请注意,这意味着我不想只返回一个集合并将其
如果我提前知道我会有n个对象,我可以调用n个不同的方法,但我没有——我的工厂会创建任意数量的对象,而这些对象在时间之前是未知的
有人知道怎么做吗
目标是让它们成为“合适的”春豆,就像上面所说的那样;具体来说,它们应该可以作为源和目标进行自动布线。请注意,这意味着我不想只返回一个集合并将其作为bean
我使用的是XML配置的Spring3.1。似乎需要动态bean创建 以前从未尝试过,但如中所述,您可以尝试使用。看起来它已经满足了你的所有需要。从工厂bean中使用它(现在不需要定义为工厂bean) 编辑:我发现了一个很好的用法示例 比如:
String className = ... // get class name from wherever you get it
// Build your dynamic bean:
BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(className);
bdb.setSingleton(true);
// add dependencies:
bdb.addDependsOn(dependeeBeanName);
// Eventually - validate it and get it:
AbstractBeanDefinitionb bean = db.getBeanDefinition();
// I guess only now you get other already existing beans
// and make them depend on the one you created in the same way
String className = ... // get class name from wherever you get it
// Build your dynamic bean:
BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(className);
bdb.setSingleton(true);
// add dependencies:
bdb.addDependsOn(dependeeBeanName);
// Eventually - validate it and get it:
AbstractBeanDefinitionb bean = db.getBeanDefinition();
// I guess only now you get other already existing beans
// and make them depend on the one you created in the same way