简述
在实际情况下我们的业务一般有多种环境例如:测试、准生产、生产环境,由于同一服务不同环境下数据库等都是分开的,所以项目代码例如java 就会有多套配置文件,项目代码在git 仓库只有一套(多分支),maven 编译的时候会把所有的配置文件都编译到jar 包里面,但是启动的时候就要根据实际环境去选择配置文件启动。
方式一
在maven 编译的时候通过编译参数传递变量到jar 包中
如图所示为jenkins 配置信息,构建的时候maven 参数里面有-P${mvn_env}这个就是表示生产换进还是测试环境的变量,通过这个变量maven 传递给jar 包中的主配置文件
application.properties 中的关于环境的配置,然后通过此配置选择具体环境的子配置文件来启动jar 包。
方式二
在启动jar 包的时候命令行指定环境参数
java -jar /usr/tomcat/webapps/hfax-soul.jar --spring.profiles.active=${ENVIRONMENT}
在启动的时候通过 --spring.profiles.active= 来指定启动的环境变量,此参数实际就是覆盖了application.properties 中的关于此处的配置,然后加载到jar 包的启动过程,启动过程就会选择相应的子配置文件。