在后端开发中,应用程序在不同的环境可能会有不同的配置,例如数据库连接、日志级别等,开发,测试,生产每个环境可能配置都不一致。
使用Spring Boot的Profile可以实现多场景下的配置切换,方便开发中进行测试和部署生产环境。 下面就大致介绍一下yml配置文件跟properties配置文件怎么使用profile配置不同环境的配置文件。废话不多说,直接干!
开发环境
- JDK 1.8
- Maven 3.x
- Spring Boot 1.5.8
- STS
第一步:先解决springboot开发环境和生产环境不一样的配置问题
application-dev.yml
#development environment
spring :
profiles: dev
server:
port: 8160
my:
name: ricky
application-pro.yml
#production environment
spring :
profiles: pro
server:
port: 8161
my:
name: ricky
application.yml
# 不同环境下的配置文件引用
spring:
profiles:
active: dev
第二步:Maven Profile
如果我们使用的是构建工具是Maven,也可以通过Maven的profile特性来实现多环境配置打包。
pom.xml配置如下:
<profiles>
<!--开发环境-->
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--生产环境-->
<profile>
<id>prod</id>
<properties>
<build.profile.id>pro</build.profile.id>
</properties>
</profile>
</profiles>
手动启动参数
如果是部署到服务器的话,我们正常打成jar包,启动时通过 --spring.profiles.active=xxx
来控制加载哪个环境的配置,完整命令如下:
java -jar xxx.jar --spring.profiles.active=dev 表示使用测试环境的配置
java -jar xxx.jar --spring.profiles.active=pro 表示使用生产环境的配置
通过修改application.yml中 active: 后面是pro还是dev来改变配置.
而写在application.yml中的两种环境下都可以用,如数据库的配置.
第三步:jenking中构建MAVEN指令
clean package install -Dmaven.test.skip=true -Ptest -DprofileActive=pro -U
到这里就完事了,有不懂欢迎下方留言!喜欢就点个赞吧。