spring profiles 类似于maven profiles,不过spring profiles是在部署运行时选择配置文件;而maven profiles是在打包时选择所激活的配置文件,其它的文件就不包含进去了。两种方式对于不同环境的部署提供了很大的方便:比如开发环境、测试环境、生产环境;不至于老是修改配置文件,如jdbc.properties,甚至有时还会忘记,就出大问题了。
现在src(即classpath路径下)下有:jdbc_dev.properties/jdbc_test.properties/jdbc_production.properties三个文件;在开发环境、测试环境、生产环境分别配置环境变量:spring.profiles.active=dev、spring.profiles.active=test、spring.profiles.active=production,他们是一一对应的。
在spring的xml配置文件中,可以用如下方式加载jdbc属性文件
<context:property-placeholder location="classpath:jdbc_${spring.profiles.active}.properties"/>
通过设置环境变量,这是推荐的做法。还有一种方式就是在tomcat中配置:
在%TOMCAT_HOME%/conf/catalina.properties文件中加一个属性配置,比如开发环境就是spring.profiles.active=dev
总结:通过如上配置,就会使得spring在相应的环境读取相应的配置文件。