===
Spring多环境配置文件自动切换
序言
软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到至少三个不同的环境,开发环境、测试环境以及生产环境。(有些较复杂的大型软件系统还有用户验收环境或公众测试环境等)通常这三个环境会有很多配置参数不同,例如数据源、文件路径、日志选项、中间件、缓存库等,如果每次上线一个新版本时都手动修改配置会十分繁琐,容易出错。
能不能使用一些自动化的手段来进行管理呢
常见的Spring项目的可以采取策略来自动化配置
多环境配置自动切换的解决方案
1 一劳永逸的方案
更换Spring Boot
Spring Boot使用了一个全局的配置文件application.xml
通过启动时指定spring.profiles.active参数即可轻松切换配置文件
2 投机取巧的方案
在默认情况下 项目的配置文件是放在资源根目录下的
例如../resource/application-context.xml
由此想到 只要项目运行时 在根目录下配置不同的配置文件即可
可以使用maven 在打包时 打入不同的配置文件内容
根据不同环境分别打包 也可实现自动切换配置文件
使用maven war包插件
maven-war-plugin
项目结构
-src
|---java
|---resource
|---prod
|---test
|---webapp
pom文件
先配置不同的打包环境 使用侧写描述符
一组侧写配置
<profile>
<!---编号--->
<id>product</id>
<properties>
<!---环境属性--->
<package.environment>prod</package.environment>
</properties>
</profile>
完整配置 生产环节product 测试环境development 开发环境test
<profiles>
<profile>