首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MethodInvokingFactoryBean的GenericBeanDefinition

使用MethodInvokingFactoryBean的GenericBeanDefinition
EN

Stack Overflow用户
提问于 2013-10-30 05:09:39
回答 1查看 462关注 0票数 0

我想动态创建bean,并设置其他bean的方法调用返回的一些属性值。

在不创建动态bean的情况下,我的spring配置文件中有以下内容:

代码语言:javascript
运行
复制
<bean id="mybean" class="com.class.mybean">
    <property name="customerName">
        <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
            <property name="targetObject" ref="otherBean" />
            <property name="targetMethod" value="getCustomerName()" />
        </bean>
    </property>
</bean>

代码语言:javascript
运行
复制
@Override
public void postProcessBeanFactory(
        ConfigurableListableBeanFactory beanFactory) throws BeansException {
        this.factory = beanFactory;

        BeanDefinitionRegistry registry = ((BeanDefinitionRegistry )factory);  
        GenericBeanDefinition beanDefinition = new GenericBeanDefinition();  
        beanDefinition.setBeanClass(MyBeanClass.class);  
        beanDefinition.setLazyInit(false);  
        beanDefinition.setAbstract(false);  
        beanDefinition.setAutowireCandidate(true);  
        //beanDefinition.setScope("session");  
        MutablePropertyValues values = new MutablePropertyValues();
        values.addPropertyValue("customerName", ????);
        beanDefinition.setPropertyValues(values);
        registry.registerBeanDefinition("myDynamicBean",beanDefinition);  

}

在这种情况下,等效的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-10-30 17:11:29

您应该使用类bean定义而不是xml bean定义。为此,您应该在定义应用程序上下文的类上使用@Configuration注释。下面是一个Spring Configuration示例

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19669176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档