2012-01-02 64 views
1

如何在Spring工廠bean中使用PropertiesOverrideConfigurer?這些是我的bean定義。Factory bean和PropertiesOverrideConfigurer

<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> 

我想用來自另一個屬性文件的東西來替換constructor-arg「datasource」。我知道如何爲Spring bean使用PropertiesOverrideConfigurer,工廠bean是什麼?

回答

0

更換構造帶參數的正確的策略是使用提供一個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>