利用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變量的值,可以配置在環境變量中也可以配置配置文件中,建議配置到環境變量中。