【问题标题】:Factory-bean and PropertiesOverrideConfigurerFactory-bean 和 PropertiesOverrideConfigurer
【发布时间】:2012-01-02 09:38:27
【问题描述】:

如何将 PropertiesOverrideConfigurer 与 Spring 工厂 bean 一起使用?这些是我的 bean 定义。

<bean id="dataFeedFactory" class="com.gottex.gottware.datafeeds.factories.DataFeedFactory">
    <property name="dummyIntervalDistribution" ref="fixedIntervalGenerator"/>
    <property name="dummyStep" value="0.0001"/>
    <property name="serverAddress" value="${com.gottex.gottware.datafeeds.bloomberg.server.address}"/>
    <property name="serverPort" value="${com.gottex.gottware.datafeeds.bloomberg.server.port}"/>
</bean>

<bean id="referenceDataRequester" factory-bean="dataFeedFactory" factory-method="referenceDataRequester">
        <constructor-arg name="datasource" value="${com.gottex.gottware.datafeeds.mode}"/>
</bean>

我想用来自另一个属性文件的东西替换构造函数参数“数据源”。我知道如何将 PropertiesOverrideConfigurer 用于 spring bean,工厂 bean 呢?

【问题讨论】:

    标签: spring factory


    【解决方案1】:

    替换constructor-arg的正确策略是使用低阶的PropertyPlaceholderConfigurer,从而替换属性的现有值,如下所示

    <bean id="mainPropertiesConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="properties">
            <props>
                <prop key="myProp">mypropvalue</prop>
            </props>
        </property>
        <property name="order" value="100"/>
    </bean>
    
    <bean id="overriderPropertiesConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="properties">
            <props>
                <prop key="myProp">mypropoverridenvalue</prop>
            </props>
        </property>
        <property name="order" value="1"/>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多