利用spring 的profile环境配置可以区分不同环境下的配置,但只能配置一个PropertyPlaceholderConfigurer,如果出现多个,后面的会覆盖前面的,导致配置找不到。
配置文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- 不同的配置切换 -->
<beans profile="dev">
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:application-dev.properties</value>
</list>
</property>
</bean>
</beans>
<beans profile="prod">
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:application-prod.properties</value>
</list>
</property>
</bean>
</beans>
</beans>
application-prod.properties
正式环境中的配置
application-dev.properties
测试环境中的配置
切换环境
可以在web.xml中配置默认环境
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>prod</param-value>
</context-param>
切换配置时配置spring.profiles.active变量的值,可以配置在环境变量中也可以配置配置文件中,建议配置到环境变量中。