0

我有一个春季项目。有两个属性文件。一个属性文件是 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 似乎都不起作用。

4

2 回答 2

0

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

<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>
于 2012-07-30T04:01:40.627 回答
0

这是我们如何解决的

上下文.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>

设置.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文件 的示例 bean

数据库.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>
于 2019-01-17T06:58:22.577 回答