我们开发好的springboot程序可能会运行在不同的环境下,不同环境下的配置信息又不一定相同。主要有开发环境、测试环境和生产环境。为了程序在不同环境下正确运行,需要我们不断修改配置文件。如果反复开发测试,需要反复修改配置文件信息,比较繁琐,容易出错。
对此springboot为我们提供了多环境下的配置信息解决方案。
多环境开发单文件-Profiles
SpringBoot提供的Profiles可以用来隔离应用程序配置的各个部分,并在特定环境下指定部分配置生效
如何分割不同环境的配置
---
如何指定哪些配置属于哪个环境
spring:
config:
activate:
on-profile: 环境名称
如何指定哪个环境的配置生效
spring:
profiles:
active: 生效环境名称
启动springboot项目默认端口号8080
配置好生效环境,再次启动项目,端口变为dev(开发环境)下设置的端口号8081,映射目录是通用信息中的/dev
#通用信息,指定生效的环境
spring:
profiles:
active: dev
#设置映射目录
server:
servlet:
context-path: /dev
---
#开发环境
spring:
config:
activate:
on-profile: dev
server:
port: 8081
---
#测试环境
spring:
config:
activate:
on-profile: test
server:
port: 8082
---
#生产环境
spring:
config:
activate:
on-profile: pro
server:
port: 8083
如果通用信息和特定环境的配置信息冲突,优先生效特定环境下的配置。启动项目开发环境下的/teding目录生效
多环境开发多文件-Profiles
将不同环境的配置写入一个文件中,内容会很多,我们可以根据不同环境进行文件拆分,一个文件写一个环境的配置信息,会使得配置信息简洁,以环境名称为名字,最后在application.yml中启用环境,配置通用信息
多环境开发分组-profiles
将上面拆分成多文件后还可以拆分。如开发环境中有服务器配置,数据库配置,自定义配置等。可以将这些按照用途进行文件拆分。
在devDB中只写开发环境下的数据库配置
在devServer中只写开发环境下的服务器配置
在devSelf中只写开发环境下的自定义配置
application.yml文件中通过group指定开发分组