SpringBoot配置文件拆分设计思路

需求背景

工作中经常遇到多模块系统,有时在多模块中,多个web项目依赖同一个公共服务模块。

back-end-web-application 模块都依赖 common-service

  • common-service 中主要中包含数据库服务,主要整合了 MyBatis-Plus,并包含数据库CRUD业务;
  • back-end-web-application 则是主要处理网络页面和存放html网页;

此时,我比较倾向于把数据库配置都放在 common-service 模块里。

解决方案

我们只需要在common-service中编写配置文件以application-*.yml的形式命名

然后,back-end-web-application 模块的 application.yml 中配置:

spring:
  profiles:
    include: datasource, dev

:千万不要自己定义common-service中配置文件的名字,只能以application-开头才会被springboot扫描到,如果想自定义名,则需要自己实现扫描。

其他说明

如果在多个模块中都有 application.yml文件,则会只读取有主启动类中的yml文件,不会读取其他模块中的配置文件。

例如:在A模块中有一个application.yml文件,在B模块中有一个application.yml,如果启动A模块中的主启动类,则只会加载A模块中的application.yml文件,并不会加载B模块中的application.yml文件。

已验证通过————对打成 war 包的 SpringBoot 项目同样有效!

Demo地址

https://gitee.com/kendoziyu/spring-boot-yaml-merge

参考文档

  1. Spring Boot项目加载依赖多模块解析yml文件
posted @ 2022-03-31 19:53  极客子羽  阅读(1129)  评论(0编辑  收藏  举报