Java Spring 2.5.x
我有ApplicationContext
并且我想用参数注册 bean
“beanName”,bean 定义
GenericBeanDefinition myBeanDef = new GenericBeanDefinition();
要注册 bean,我需要BeanDefinitionReader
但不知道如何获得任何帮助
getRegistry().registerBeanDefinition
你确定你需要一个bean定义吗?如果你有一个 ConfigurableApplicationContext 你可以使用暴露的bean工厂:
ConfigurableApplicationContext context = ...;
ConfigurableListableBeanFactory beans = context.getBeanFactory();
Object bean = new ...; // create and initialize bean
beans.registerSingleton(beanName, bean);
而不是Object
使用适当的 bean 类型并在注册之前填写所需的属性。如果你想使用自动装配,你可以使用
Object bean = beans.createBean(Object.class);
beans.registerSingleton(beanName, bean);
以下解决方案对我有用。
GenericApplicationContext context = new GenericApplicationContext();
context.setParent(applicationContext);
context.registerBeanDefinition("beandefName", beanDefinitionObject);
你可以试试
BeanDefinitionReader reader = new XmlBeanDefinitionReader(context);