两种方式实现Springboot的多环境配置(一)——使用Springboot自带profile管理功能

背景

有三个配置文件(.properties文件和.yml文件一样道理嘛),分别是:

application.properties(默认配置)文件内容:server.port=8080

application-dev.properties(开发环境)文件:server.port=8082

application-prod.properties(生产环境)文件:server.port=8081

方式一、使用Springboot自带的功能实现

步骤:

1、给application.properties增加属性配置,默认附加上application-dev.properties配置文件

spring.profiles.active=dev

如果是yml,配置就是

spring: 
    profiles: 
        active: dev

 修改后的application.properties文件内容

spring.profiles.active=dev
server.port=8080

2、在IDE中运行时如何指定配置文件

两种方式实现Springboot的多环境配置(一)——使用Springboot自带profile管理功能_第1张图片

两种方式实现Springboot的多环境配置(一)——使用Springboot自带profile管理功能_第2张图片

在Active profiles中设置相应的配置即可:

设置为dev,表示使用application.properties + application-dev.properties

设置为prod,表示使用application.properties + application-prod.properties

如果application.properties和application-dev.properties中有重复的配置(比如我这里都配置了server.port),application-dev.properties中的配置会覆盖掉application.properties得配置,比如我在IDE中指定使用dev配置文件运行时的结果:

两种方式实现Springboot的多环境配置(一)——使用Springboot自带profile管理功能_第3张图片

3、打包后运行时如何指定配置文件

#注意,这里打包的话,就直接mvn clean package -Dmaven.test.skip=true 就行,不需要指定-P参数(因为我们没有用maven来管理profile)

打包完成之后,我们使用java -jar方式执行文件时,可以通过指定 --spring.profiles.active=prod来设置使用prod配置文件:

两种方式实现Springboot的多环境配置(一)——使用Springboot自带profile管理功能_第4张图片

#指定配置文件为application.properties+application-prod.properties
java -jar .\springboot-study-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

#指定配置文件为application.properties+application-dev.properties
java -jar .\springboot-study-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

#不加--spring.profiles.active的话,指定配置文件为application.properties+
#application-dev.properties(我们的默认附加是dev)
java -jar .\springboot-study-0.0.1-SNAPSHOT.jar

使用该方式的优点:

打包之后可以动态的指定加载哪个配置文件(--spring.profiles.active),因为所有的配置文件都会被打包进来

方式二、Springboot+maven实现(点我直达)

你可能感兴趣的:(编程语言/IT/网络/java)