0

我有一个包含 Spring 项目配置的 XML 文件,我想动态添加一个新 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>

有人有想法吗?

4

1 回答 1

0

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

如果您想根据某些派生值指定 bean 的属性,您可以使用 Spring 表达式语言

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() {
        ...
    }
}
于 2013-03-12T13:44:42.723 回答