环境隔离
目前只有一个配置文件,但是不方便未来的自动化部署
方案
新增application-dev.yml
和 application-prod.yml
隔离成开发环境 和 生产环境
过程
首先确保src/main/resources
目录是有application.yml
在src/main/resources
新建application-dev.yml
和application-prod.yml
- application-dev.yml
# 开发环境
spring:
jpa:
show-sql: true
- application-prod.yml
# 生产环境
spring:
jpa:
show-sql: false
- pom.xml
<dependencies>
...
</dependencies>
<profiles>
<profile>
<!-- 开发环境 -->
<id>dev</id>
<activation>
<!-- 表示如果编译时没有指定环境,则以该环境为默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--使用${environment}获取值-->
<environment>dev</environment>
</properties>
</profile>
<profile>
<!-- 生产环境 -->
<id>prod</id>
<properties>
<environment>prod</environment>
</properties>
</profile>
</profiles>
<build>
<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-${environment}.yml</include>
</includes>
</resource>
</resources>
...
</build>
编译打包命令
mvn clean package -Dmaven.test.skip=true -Pdev # 开发环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pprod # 生产环境的打包命令
运行命令
java -jar bookstore-v0.1.jar --spring.profiles.active=dev # 开发环境运行
java -jar bookstore-v0.1.jar --spring.profiles.active=prod # 生产环境运行
idea上配置
在Environment variables
设置为--spring.profiles.active=dev
并且Active profiles
设置为dev