可以使用Spring的BeanDefinitionRegistry来动态生成多个bean。下面是一个示例:
public class MyBeanGenerator implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
//定义一个bean
BeanDefinition myBean = BeanDefinitionBuilder.rootBeanDefinition(MyBean.class)
.addPropertyValue("prop1", "value1")
.addPropertyValue("prop2", "value2")
.getBeanDefinition();
//动态注册多个bean
for (int i = 1; i <= 10; i++) {
String beanName = "myBean" + i;
registry.registerBeanDefinition(beanName, myBean);
}
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
// do nothing
}
}
在ApplicationContext中配置MyBeanGenerator即可实现程序生成10个名为myBean1到myBean10的MyBean对象。