3

Java Spring 2.5.x

我有ApplicationContext并且我想用参数注册 bean

“beanName”,bean 定义

GenericBeanDefinition myBeanDef = new GenericBeanDefinition();

要注册 bean,我需要BeanDefinitionReader但不知道如何获得任何帮助

getRegistry().registerBeanDefinition
4

3 回答 3

3

你确定你需要一个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);
于 2013-04-08T21:06:31.770 回答
1

以下解决方案对我有用。

GenericApplicationContext context = new GenericApplicationContext();
        context.setParent(applicationContext);

context.registerBeanDefinition("beandefName", beanDefinitionObject);
于 2013-04-08T20:01:40.553 回答
0

你可以试试

BeanDefinitionReader reader = new XmlBeanDefinitionReader(context);
于 2013-04-08T19:42:03.920 回答