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
参考文档
分类:
框架搭建
标签:
Springboot2.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix