设立Spring的配置文件为war包外部的文件
设置Spring的配置文件为war包外部的文件
用Spring开发Web项目的时候,有些情况下,需要在不解开war包的情况下修改配置在不同环境读取不同的配置文件,例如:开发环境:web-dev-config.properties,测试环境:web-test-config.properties,生产环境:web-production-config.properties,这时候就需要动态的载入配置文件。
从JVM参数获取配置文件路径
JVM参数:-Dweb.config.path=/etc/myproj/web.config.properties
Spring PropertyPlaceholderConfigurer配置如下:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>file:${web.config.path}</value> </property> <property name="fileEncoding" value="utf-8" /> </bean>
设置默认路径
可以设置一个默认的配置文件路径,如果不指定JVM参数,则从该路径读取
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${mir_mon_api.config.path:/etc/myproj/web.config.properties}</value>
</property>
<property name="fileEncoding" value="utf-8" />
</bean>
设置环境
JVM参数:-Denv=test -Dconfig.path=/etc/myproj
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>file:${config.path}/web-${env}-config.properties</value>
</property> <property name="fileEncoding" value="utf-8" /> </bean>