1.在实际开发时,我们可能会有开发环境、测试环境、生产环境,这三个环境的配置信息会不同(数据库连接信息、数据库连接池配置等)。
SpringBoot提供了profile功能,可以通过核心配置文件进行动态配置切换。
由于SpringBoot有两种配置文件格式,profile在实现上也有区别。
1、 .properties;
2、 .yml(.yaml);
一.在.properties格式配置文件中实现动态切换profile配置的功能:
a. SpringBoot项目默认启动时,控制台日志提示了未设置profile激活功能
b. 设置之后(左边的三个子配置文件application-dev.properties // application-pro.properties // application-test.properties)中分别设置server.port=8081、server.port=8082、server.port=8083,此时我们继续启动程序,发现虽然我们在三个子配置文件中分别设置了中间件(tomcat)的端口,但是都未生效
c. 此时,我们在核心配置文件application.properties中设置属性spring.profiles.active=dev,再启动程序,发现application-dev.properties被激活了,
启动端口号也修改为子配置文件设置的端口号
d.按照上述方法,在核心配置文件application.properties中设置属性spring.profiles.active=pro和test,再启动程序()这时端口分别会显示8082和8083
e.application.properties中实现了使用profile动态切换配置的功能
二、在.yml格式配置文件中实现动态切换配置的功能
spring:
profiles:
#设置激活的dev
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启动SpringBoot项目,我们可以切换配置,实际工作中,可以通过打成可执行jar,启动程序时,设置命令行启动参数,实现动态切换配置
命令行中,启动程序(java -jar springboot-profiles-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro)回车即可