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

 

 

猜你喜欢

转载自jamie-wang.iteye.com/blog/2236844