SpringBoot配置-profile的使用

前言:在实际开发时,我们可能会有开发环境、测试环境、生产环境,这三个环境的配置信息会不同(数据库连接信息、数据库连接池配置等)。SpringBoot提供了profile功能,可以通过核心配置文件进行动态配置切换。

由于SpringBoot有两种配置文件格式,profile在实现上也有区别。
1、 .properties;
2、 .yml(.yaml);

在.properties格式配置文件中实现动态切换配置的功能:

一、SpringBoot项目默认启动时,控制台日志提示了未设置profile激活功能

二、.properties格式配置文件设置三个子配置文件

三、三个子配置文件application-dev.properties、application-test.properties、application-pro.properties中分别设置server.port=8081、server.port=8082、server.port=8083,此时我们继续启动程序,发现虽然我们在三个子配置文件中分别设置了中间件(tomcat)的端口,但是都未生效。

四、此时,我们在核心配置文件application.properties中设置属性spring.profiles.active=dev,再启动程序,发现application-dev.properties被激活了,启动端口号也修改为子配置文件设置的端口号。

五、按照上述方法,在核心配置文件application.properties中设置属性spring.profiles.active=test,再启动程序

如此,便在application.properties中实现了使用profile动态切换配置的功能

在.yml格式配置文件中实现动态切换配置的功能

一、先将.properties文件中的设置都注释掉,否则.yml由于加载优先级低,不会生效。.yml格式的配置文件新增了一个属性,此属性在.properties文件中并没有,可以通过IDE提示验证

二、在一个文件中使用--- 进行隔离不同的配置

spring:
  profiles:
    active: dev
---
spring:
  profiles: dev
server:
  port: 8091
---
spring:
  profiles: test
server:
  port: 8092
---
spring:
  profiles: pro
server:
  port: 8093

三、测试可知

profile激活方式
上述介绍的主要是配置方式,激活方式是通过配置文件的spring.profiles.active属性实现了,还有两种激活配置文件的方式

通过设置虚拟机参数

一、虚拟机参数,打开IDEA相关设置

二、设置虚拟机启动参数,参数值为-D:spring.profiles.active=pro(-D为固定写法)

三、启动程序,测试结果

通过设置应用程序参数

一、设置应用程序参数,参数前使用两个杠杠--

二、启动测试效果

通过设置命令行参数,启动程序

通过IDEA启动SpringBoot项目,我们可以切换配置,实际工作中,可以通过打成可执行jar,启动程序时,设置命令行启动参数,实现动态切换配置

一、打可执行的jar包

二、命令行中,启动程序(java -jar springboot-profiles-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro)

三、测试结果

原文地址:https://www.cnblogs.com/elnimo/p/13779443.html