本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

在SpringBoot中主要配置文件为application.properties配置文件,该文件我们也可以更改为application.yml,这里我们就直接采用application.yml的配置来实现生产、开发的配置分离。

1、创建两个文件,分别代表生产与开发。

四、实现生产、开发配置文件分离_spring

image.png


四、实现生产、开发配置文件分离_配置文件_02

image.png

2、在application.yml中增加如下配置参数:
spring:
profiles:
active: dev
3、分别在dev和prod中增加port的配置,进行分别引用测试

application-dev.yml

server:
port: 8081

application-prod.yml

server:
port: 8082

使用dev配置时


四、实现生产、开发配置文件分离_配置文件_03

image.png

使用prod配置时


四、实现生产、开发配置文件分离_配置文件_04

image.png

至此生产与开发的配置文件我们分离完成。

这里有个主意事项,如果application.yml中也存在port的配置时,与其激活的application-dev.yml哪个会优先呢?下面我们做个试验:


四、实现生产、开发配置文件分离_配置文件_05

image.png

如图所示,被激活的开发配置文件直接覆盖了主配置文件中的port的配置参数,结论:子配置文件优先于核心配置文件,或者是会覆盖核心配置文件。