背景介绍spring
项目有开发、测试、生产至少有这三个环境,所须要的配置信息确定不同,因此打包的时候能够指定使用哪个配置文件。maven
如测试环境使用:mvn package -P test,这时候的${env}的值就是test,打包的时候src/main/resources下的配置文件的占位符${xx.xx}将会被test.properties对应的xx.xx位置替换。ide
使用例子测试
首先添加pom.xml配置信息,filter指定环境配置文件目录,resources指定要替换的资源文件目录,profiles指定不一样环境对应的匹配文件。xml
如spring-beans.xml是一个资源配置文件,里面的test.name经过在打包的时候占位符替换。资源
test.properties内容为:test.name=hi,test,其余文件相似。开发
整个maven结构it
因此当我mvn package -P test 打完包后,去查看打成的包里面的spring-beans.xml的内容,就会变成如下替换完成的样子。编译
这样就实现了不一样环境资源的配置,在打包编译期就肯定下来。class