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文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM