我是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类中的变量(当然,因为该方法只在按下按钮时执行)。
那么有更简洁的方法吗?