【Java】SpringBoot2.4.0 多配制文件使用,更方便的配置分组管理
温馨提示:这篇文章已超过388天没有更新,请注意相关的内容是否还可用!
首先先来看一下springboot2.4.0之前的版本是如何管理配置文件的.
单一环境,配置文件拆分(before)
大家在开发过程中是否有遇到这种场景呢?就是所有的配置,都写到application.yaml中,像Mysql,MQ,Redis的配置一长串.显得整个配置文件非常多不好管理.这时候就会想将这些中间件的配置拆分到其他配置文件中,然后使用spring.profiles.include将其引入进来.
如下:
spring:
profiles:
include: 'db,mq,redis'
上面这段配置的意思就是会将
application-db.yaml application-mq.yaml application-redis.yaml
三个配置文件都引入进来,这样application.yaml的配置就显得很简洁了,整个配置也很清晰.
多环境,配置文件拆分(before)
但是这里没有考虑到多环境的情况.
就比如,我开发环境需要引入application-dev-db.yaml 生产环境需要引入application-prod-db.yaml这里该怎么做呢?
# application.yaml
spring:
profiles:
active: dev
# application-dev.yaml
spring:
profiles:
include: 'dev-db,dev-mq,dev-redis'
# application-prod.yaml
spring:
profiles:
include: 'prod-db,prod-mq,prod-redis'
按照如上配置,但我们激活环境为dev时就加载application-dev.yaml该文件中指定了dev环境下需要包含进来的配置文件
这样就实现了多环境下的,配置文件拆分.
新版多环境,配置配置文件拆分
那么在2.4.0之后是如何进行配置文件的管理呢?
多了两个配置spring.config.import spring.profiles.group
# application.yaml
spring:
config:
import: 'application-common.yaml,application-common-2.yaml'
profiles:
active: dev
group:
dev: 'dev-mq,dev-db,dev-redis'
prod: 'prod-mq,prod-db,prod-redis'
spring.config.import接收的是一个字符串数组
我认为spring.config.import可以导入一些与环境无关的,但需要拆分出去的配置文件.
而spring.profiles.group 可以对配置文件进行分组,一般情况就是按照环境来分组.
当激活环境为dev时就会导入spring.profiles.group.dev下的所配置的文件.即 dev-mq,dev-db,dev-redis
我认为新版的配置会更好管理一些.
