springboot项目公共配置文件抽取

我就是我 2022-08-28 12:40 370阅读 0赞

背景:部署多个服务,但是每个里面有很多相同的配置,这些配置每次部署都需要更改
目标:希望配置文件里面的运维相关的配置抽取到公共目录,实现统一管理,一改全改
技术:spring.profiles.include(详细说明点击)

初级方法(方法一):

将公共配置抽取出来
本方法关键字:抽取

比如application.yml里面有配置。其中公共配置如下

  1. spring:
  2. data:
  3. mongodb:
  4. host: 192.168.1.2
  5. port: 27017
  6. database: mydb
  7. redis:
  8. host: 192.168.1.3
  9. 其他配置....

抽取之后 application.yml 变成

  1. spring:
  2. profiles:
  3. include:
  4. mongodb,redis
  5. 其他配置....

抽取mongodb的部分放到文件 application-mongodb.yml

  1. spring:
  2. data:
  3. mongodb:
  4. host: 192.168.1.2
  5. port: 27017
  6. database: mydb

抽取redis的部分放到文件 application-redis.yml

  1. spring:
  2. data:
  3. redis:
  4. host: 192.168.1.3

完成之后文件目录结构变化
在这里插入图片描述
优点:如果mongodb和redis配置有变更,只需要修改一份配置,然后同步到所有服务即可
缺点:1)需要做同步操作(复制,替换); 2)客观上,配置文件还是存在多份

高级方法(方法二):

方法一虽然能解决配置变更之后的快速修改,在操作上需要同步替换操作才行,容易遗漏,也不能统一管理
在此基础上,我们希望能有所改善

本方法关键字:链接(详细用法说明)
将所有公共配置存放到一个公共的目录,然后到所有用到公共配置文件的目录下创建文件链接。
例如原本的目录结构是
在这里插入图片描述
1)将mongodb和redis移动到…/config
2)在testapp1和testapp2 分别建立链接

  1. ln -s ../config/application-mongodb.yml application-mongodb.yml
  2. ln -s ../config/application-redis.yml application-redis.yml

在这里插入图片描述
完成之后文件目录结构如下
在这里插入图片描述
如果是Windows环境,可以这样创建链接

  1. mklink /h application-mongodb.yml F:\application-mongodb.yml

在这里插入图片描述
优点:如果配置有变更,只需要修改一份配置,所有建立链接的服务都能读取到
缺点:第一次部署的时候需要额外做创建链接的工作(但是能一劳永逸)

发表评论

表情:
评论列表 (有 0 条评论,370人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Thymeleaf抽取公共页面片段

    抽取页面 项目中,一般把所有的公共页面片段都抽取出来 放在一个独立的页面中 其他,所有的页面根据需要进行引用 参考文档 ![这里写图片描述][70] t