如何访问bean的属性以读取SpringXML配置文件?
我想在春天做如下事情:如何访问bean的属性以读取SpringXML配置文件?,spring,Spring,我想在春天做如下事情: <beans> ... <bean id="bean1" ... /> <bean id="bean2"> <property name="propName" value="bean1.foo" /> ... ... ... 我认为这将访问bean1的getFoo()方法并调用bean2的setPropName()方法,但这似乎不起作用。我认为您必须注入bean1,然后由于时间问
<beans>
...
<bean id="bean1" ... />
<bean id="bean2">
<property name="propName" value="bean1.foo" />
...
...
...
我认为这将访问bean1的getFoo()方法并调用bean2的setPropName()方法,但这似乎不起作用。我认为您必须注入bean1,然后由于时间问题手动获取
foo
。框架何时解析目标bean的值
您可以创建一个指针bean并对其进行配置
class SpringRef {
private String targetProperty;
private Object targetBean;
//getters/setters
public Object getValue() {
//resolve the value of the targetProperty on targetBean.
}
}
应该会有帮助。您需要使用:
我的理解是:
<beans>
...
<bean id="foo" class="foopackage.foo"/>
<bean id="bean1" class="foopackage.bean1">
<property name="foo" ref="foo"/>
</bean>
<bean id="bean2" class="foopackage.bean2">
<property name="propName" ref="foo"/>
</bean>
....
</beans>
...
....
这样,您的bean2就不会像示例中那样耦合到bean1。您可以更改bean1和bean2,而不会相互影响
如果您确实需要执行您建议的注射,您可以使用:
<util:property-path id="propName" path="bean1.foo"/>
另一种语法使用“id”属性设置目标bean名称和属性路径。
<util:property-path id="propName" path="bean1.foo"/>