如何将子标签添加到已使用Java定义的Xml文件中?

时间:2013-03-12 13:16:56

标签: java xml spring

我有一个XML文件,其中包含Spring项目的配置,我想动态添加一个新bean。我必须修改初始的xML文件并添加我的新bean定义:

    <?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.xsd">

<bean id="config"
        class="myclass">
        <property name="configXml">
            <value>config.xml</value>
        </property>
    </bean>

<-- here a want to add a new bean definition <bean>....</bean> -->

</beans>

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

我仍然不是100%你的意思,但这是两个尝试的案例。

如果要根据某些派生值指定bean的属性,可以使用Spring Expression Language

http://static.springsource.org/spring/docs/3.0.x/reference/expressions.html

<bean id="someBean" class="example.SomeBean">
    <property name="foo" value="#{config.whatever}"/>
</bean>

如果你想要更复杂的东西,你可以使用工厂bean以编程方式构造一个bean

<bean id="someBean" class="example.SomeBeanFactory">
    <property name="config" ref="config"/>
</bean>

类似

class SomeBeanFactory implements FactoryBean<SomeBean> {
    public void setConfig(MyClass config) { ... }

    public SomeBean getObject() {
        ...
    }
}
相关问题