弹出多个属性文件

时间:2012-07-30 02:20:41

标签: spring

我有一个春季项目。有两个属性文件。一个属性文件是dbConfig.xml中的配置,我无法更改它。我有自己的appConfig.xml

我有以下内容

<util:properties id="configProps" location="classpath:spring/config.properties" />

<bean id="createDummyDataTask" class="com.merc.spring.CreateDummyData" scope="step">
    <property name="srcFolder" value="${configProps.srcDir}"/>
</bean>

使用srcDir或configProps.srcDir似乎不起作用。

2 个答案:

答案 0 :(得分:0)

${}仅适用于context:propertyplaceholder加载的属性文件。如果您使用的是Spring 3.0,则可以使用#{}作为Spel(弹簧表达式语言)处理。以下应该有效。

<util:properties id="configProps" location="classpath:spring/config.properties" />

<bean id="createDummyDataTask" class="com.merc.spring.CreateDummyData" scope="step">
    <property name="srcFolder" value="#{configProps.srcDir}"/>
</bean>

答案 1 :(得分:0)

这是我们解决的方式

Context.xml

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

        <import resource="Settings.xml"/>
        <import resource="Database.xml"/>   

    </beans>

Settings.xml

可以在列表中添加许多属性文件

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

                <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                <property name="locations">
                    <list>
                        <value>db.properties</value>
                    </list>
                </property>
            </bean>

        </beans>

用于处理db.properties文件的示例

Database.xml

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

        <!-- the transaction manager -->
        <bean id="dstxnManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="appDataSource"/>
        </bean>

        <!-- the DataSource (parameterized for configuration via a PropertyPlaceHolderConfigurer) -->
        <bean id="appDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" lazy-init="false">
            <property name="driverClass"              value="${driverClass}" />
            <property name="jdbcUrl"                  value="${jdbcUrl}" />
            <property name="user"                     value="${username}" />
            <property name="password"                 value="${password}" />
        </bean> 

        <!-- DB connection factory -->
        <bean id="storageDaoFactory" class="com.dao.StorageDAOFactory">
             <constructor-arg><ref bean="dstxnManager"/></constructor-arg>
        </bean>

    </beans>