首先,你要了解SpringBoot配置文件加载顺序,加载位置(代码内,Nacos等),当然这不是这里要说的,这里我们就是约定配置文件在resources下,一般有一个主配置文件application.yml,但是当配置过多时,一个配置文件,将会非常臃肿。
所以我们需要把配置文件拆分,一些不需要动的,公用的,核心的配置放到application.yml下,其他的可以有多种拆分方式,例如可以分开发环境、测试环境、正式环境
在bootstrap.yml增加配置标记当前环境
spring: profiles: active: dev
这样配置文件等于分成了好多类,但是对于一个环境来说,有两个配置文件了,比如开发就是application.yml+application-dev.yml两个配置文件。
但是有个问题,比如如果工程里面有MySQL、Redis、Kafka、短信、邮件等配置时,还是非常臃肿,而且一旦我们要修改个东西,就要去application-dev.yml中找了,因此我们可以利用Spring配置文件中可以引用属性,再次拆分一下。
我们将所有地址、用户、密码可能需要变动的集中到一个配置文件,然后将其他分开,注意这里为了演示实际上是否需要拆根据实际情况(目前我用的就是两个配置)。
这样,我们把需要变动的放到application.yml内,然后比如MySQL的等单独成文件。
然后在application.yml中除了配置环境以外,再引入其他配置
spring: profiles: active: dev include: druid,redis,kafka,zconfig
然后例如Redis配置文件application-redis.yml中,可以这样配置
spring: redis: host: ${redis.host} port: ${redis.port} password: ${redis.password} database: ${redis.database} connect-timeout: 30ms lettuce: pool: max-idle: 10 max-active: 20 min-idle: 2 max-wait: 5000ms
这里定义了引用,我们在application-dev.yml中定义这些变量
redis: host: 127.0.0.1 port: 6379 password: 1234657890 database: 0
这样,我们把配置文件一下子又拆分了好几个,当然必须是需要这么干了。
而且Spring的配置非常灵活,你也可以这样配置
spring: profiles: # active: dev,druid,redis,kafka,zconfig include: dev,druid,redis,kafka,zconfig
一切技术都是为功能服务的,这里只是演示如何使用,一切以实际情况为主。
由于Spring的配置非常灵活,因此有必要统一使用方式,防止把自己给配置蒙了。
比如,我这里叫application.yml,当时别人就喜欢叫bootstrap.yml,然后再加后缀。
END
推荐您阅读更多有关于“ 配置 Application springboot yml 前缀 ”的文章
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: