前言
在实际项目研发中,需要针对不同的运行环境,如开发环境、测试环境、生产环境等,每个运行环境的数据库…等配置都不相同,每次发布测试、更新生产都需要手动修改相关系统配置。这种方式特别麻烦,费时费力,而且出错概率大。
Spring Boot为我们提供了更加简单方便的配置方案来解决多环境的配置问题。
spring profile配置
<!-- Maven控制Spring Profile -->
<profiles><!--默认开启dev--><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><profile.active>dev</profile.active></properties></profile><profile><id>prod</id><properties><profile.active>prod</profile.active></properties></profile><profile><id>test</id><properties><profile.active>test</profile.active></properties></profile></profiles>
resources 配置
<build><finalName>${project.artifactId}</finalName><resources><resource><directory>src/main/resources</directory><!--先排除所有的配置文件--><excludes><exclude>application*.yml</exclude></excludes></resource><resource><directory>src/main/resources</directory><!--引入所需环境的配置文件--><filtering>true</filtering><includes><!--加载配置文件--><include>application.yml</include><include>application-${profile.active}.yml</include></includes></resource><resource><directory>lib</directory><targetPath>BOOT-INF/classes/lib/</targetPath><includes><include>*.jar</include></includes></resource></resources></build>
多环境配置文件相关文件为:
-
application.yml 默认配置文件,需要通过此文件去引用其他配置文件
一般来说开发会涉及到以下三种环境
-
application-dev.yml 开发环境
-
application-pro.yml 生产环境
-
application-test.yml 测试环境
application.yml配置
spring:profiles:active: @profile.active@
在src/main/resources
目录下创建多个不同环境的配置文件,命名为application-{profile}.yaml
,例如:
application-dev.yaml
application-prod.yaml
在这些文件中,你可以设置相应环境的配置,如数据库连接、日志级别等。
在IDEA中,点击刷新即可选择编译环境
mvn打包命令
//打包生产环境
mvn clean install package -P pro -Dmaven.test.skip=true
//打包开发环境
mvn clean install package -P dev -Dmaven.test.skip=true