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,启动程序时,设置命令行启动参数,实现动态切换配置