Spring applicationcontext.xml从其他类路径属性中存在的路径读取属性文件

时间:2015-05-12 11:54:22

标签: spring spring-mvc properties

我需要从属性文件中读取属性,该文件的路径在其他属性文件中指示。

第一个属性文件的键具有其他属性的路径。这个文件在我的classpath中。 EJ:

configpathfile.properties

> configpath=pathToMyConfigFile/config.properties

config.properties文件可以位于服务器的任何位置。

config.properties

> database.driverClassName=org.postgresql.Driver
> database.url=jdbc\:postgresql\://172.20.7.177\:5432/administrados
> database.username=postgres database.password=postgres

我做了一些尝试,但都失败了:

首先尝试:

在我的applicationContext.xml

<context:property-placeholder location="classpath:configpathfile.properties,file:${configpath}"/>

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
        <property name="driverClassName" value="${database.driverClassName}"/>
        <property name="url" value="${database.url}"/>
        <property name="username" value="${database.username}"/>
        <property name="password" value="${database.password}"/>
</bean>

当tomcat启动时,我收到错误:

无法加载属性;嵌套异常是java.io.FileNotFoundException:$ {configpath}(没有existe el archivo o el directorio)

第二次尝试:

在我的applicationContext.xml

<context:property-placeholder location="classpath:configpathfile.properties"/>

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="ignoreResourceNotFound" value="true" />
            <property name="locations" value="file:${ruta}" >

    </bean>

<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
        <property name="driverClassName" value="${database.driverClassName}"/>
        <property name="url" value="${database.url}"/>
        <property name="username" value="${database.username}"/>
        <property name="password" value="${database.password}"/>
</bean>

但它失败了,因为它无法找到属性。

这项任务的最佳方法是什么? 感谢。

0 个答案:

没有答案