Spring动态地将bean传递给另一个类

时间:2015-10-27 01:52:57

标签: java spring

我是Spring的新手。 目前,我正在努力实现以下目标:

class A中的方法使用String参数调用class B中的方法。 Class B然后在处理字符串(仅执行一些基本字符串操作)后创建一个bean,如下所示:

        GenericApplicationContext context = new GenericApplicationContext();
        DefaultListableBeanFactory factory = (DefaultListableBeanFactory) context.getBeanFactory();

        BeanDefinitionBuilder bean1 = BeanDefinitionBuilder.rootBeanDefinition("className");
        bean1.addPropertyReference("sampleString", "sampleBean");
        bean1.addPropertyValue("sampleString", "processed string here");
        factory.registerBeanDefinition("sampleBean", bean1.getBeanDefinition());
        context.refresh();

(我不确定我在这里创建bean的方法是否正确。如果没有,请以适当的方式建议。)

我希望将这个bean传递给class A(当然是 Spring Way )。变量名称为sampleString

到目前为止,我一直在使用类似的东西:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="proc" class="A">
</bean>

<bean id="result" class="B">
<property name="sampleString" value="#{proc.sampleString}"/>
</bean>

</beans>

但是这会将null值复制到A类中的变量(当然,因为该方法只在按下按钮时执行)。

那么有更简洁的方法吗?

0 个答案:

没有答案