IDEA2022搭建Spring?Cloud多模塊項目的詳細(xì)過程
Springboot多模塊項目搭建
創(chuàng)建maven父工程
注意:創(chuàng)建父模塊選用Spring Initializr的方式創(chuàng)建,讓父模塊繼承springboot的maven配置,之后的所有子模塊都通過maven的方式創(chuàng)建,子模塊繼承父模塊就會間接繼承springboot相關(guān)的配置,web,api模塊再另外添加spring-boot-starter-web,spring-boot-starter-tomcat相關(guān)的依賴。網(wǎng)上有很多教程父模塊都是通過maven的方式創(chuàng)建的,然后子模塊是通過Spring Initalizr方式創(chuàng)建,這種方式父模塊無法管理子模塊的依賴仲裁,需要每個子模塊自行管理,就失去了父模塊的用處了。
1.idea -> file -> new -> project,選擇Spring Initializr,填寫相關(guān)的Group,Artifact,Package name 等信息,點擊Next;
JDK版本可以根據(jù)需要選擇高一些的版本,我是由于需要兼容線上的老版本系統(tǒng),所以沿用JDK1.8的版本
2.根據(jù)需要選取初始化需要加載的依賴,我添加了Cloud Bootstrap,可以自動生成Spring Cloud依賴管理包,直接點解Create
3.刪除生成后的src目錄,pom.xml中添加pom屬性
4.剛才創(chuàng)建時選擇的Cloud Bootstrap 會在pom文件中自動生成spring-cloud 相關(guān)的依賴配置,spring-cloud-dependencies 是一個依賴管理器的pom文件,是對spring cloud版本的依賴管理
創(chuàng)建子模塊
使用maven方式創(chuàng)建api,biz,core,dao,integration,common,model 相關(guān)模塊,創(chuàng)建內(nèi)部依賴模塊是使用maven的方式創(chuàng)建,便于總模塊管理子模塊的依賴仲裁;
點擊項目根目錄,右鍵 new -> module,選用maven的方式新建模塊,Archetype可以選擇quickstart,分別添加api,biz,core,dao,integration,common,model 這些模塊。直接點擊Create
創(chuàng)建dao模塊
創(chuàng)建web模塊
web模塊可以采用Spring Initializr的方式創(chuàng)建,可以自動初始化web相關(guān)的pom包和springboot的啟動類,之后再修改web模塊的pom文件的標(biāo)簽為當(dāng)前父工程的配置即可;
1.點擊項目根目錄,右鍵 new -> module,選用Spring Initializr的方式新建web模塊,點擊Next
2.根據(jù)自己的需要勾選所需的依賴,我選擇了Spring Boot DevTools 和 Spring Web,點擊Create
3.修改web模塊的pom文件的,將spring-boot-starter-parent 替換為父工程的pom配置
4.在父工程的pom文件中新增web模塊的module依賴
創(chuàng)建完之后的工程目錄結(jié)構(gòu)如圖:
添加模塊依賴關(guān)系
創(chuàng)建完所有模塊之后,自行在各個模塊的pom 文件中添加模塊依賴配置,推薦模塊依賴關(guān)系如下圖:
模塊職責(zé)&關(guān)系說明
- web模塊:
- HTTP,HTTPS請求入口層,只負(fù)責(zé)對訪問控制進行轉(zhuǎn)發(fā)、參數(shù)轉(zhuǎn)換,不編寫復(fù)雜的業(yè)務(wù)邏輯,返回的結(jié)果數(shù)據(jù)用XxxVO模型封裝,最終返回給前端的數(shù)據(jù)用BizResult封裝;
- biz模塊:
- 負(fù)責(zé)業(yè)務(wù)邏輯處理,biz層通常提供業(yè)務(wù)具體處理流程相關(guān)的服務(wù);
- core模塊:
- 負(fù)責(zé)對dao層返回的DO或integration層返回的外部系統(tǒng)模型進行轉(zhuǎn)換、解析、業(yè)務(wù)邏輯處理。core層通常提供的是通用的服務(wù);
- api模塊:
- 負(fù)責(zé)對其它微服務(wù)系統(tǒng)提供接口,不允許拋異常,放回的結(jié)果統(tǒng)一使用BizResult封裝;
- dao模塊:
- 只負(fù)責(zé)MySQL數(shù)據(jù)庫的對接操作,返回XxxDO對象;
- integration模塊:
- 負(fù)責(zé)外部系統(tǒng)的對接,如算法、語音解析、微信接入、支付寶接入等,直接返回外部系統(tǒng)的領(lǐng)域模型;
- common模塊:
- 存放項目里面所有模塊公用的組件,有些組件如果只是某個模塊里面自己使用不要放在common下面,可以在本模塊下建立utils包,例如:ResponseUtil之類只有web層才會使用到的工具類;
- model模塊:
存放項目的數(shù)據(jù)模型,如常量、枚舉、業(yè)務(wù)數(shù)據(jù)模型等;
多模塊啟動配置文件管理
多模塊化后,想讓每個模塊的配置文件獨立管理,整合的時候再合并各個不同的模塊的配置,需要先在每個模塊下面創(chuàng)建一個配置文件,文件的命名格式必須是application-xxx.yml,啟動層模塊想引用下層模塊的配置時需要在配置文件中添加spring.profiles.include: xxx 或者spring.profiles.active: xxx (xxx為子模塊配置文件的后綴標(biāo)識名)配置項顯示引用所需要的配置文件。注意啟動層模塊的配置文件名必須是application.yml或者application.properties,不能帶上-xxx的后綴,不然導(dǎo)致spring.profiles.active的配置失效,從而無法加載子模塊的配置。例如啟動層是web層,web層的配置文件命名為application.yml,如果命名是application-web.yml會導(dǎo)致子模塊的配置無法加載。
ConfigFileApplicationListener 子模塊配置加載類源碼說明如下,默認(rèn)是從加載application.properties或application.yml這兩個配置文件中加載其它配置文件的配置,所以啟動層模塊的配置文件名必須是application.properties或application.yml。
到此這篇關(guān)于IDEA2022搭建Spring Cloud多模塊項目的文章就介紹到這了,更多相關(guān)Spring Cloud多模塊項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決java.util.NoSuchElementException異常正確方法
java.util.NoSuchElementException是Java中的一種異常,表示在迭代器或枚舉中找不到元素,這篇文章主要給大家介紹了關(guān)于解決java.util.NoSuchElementException異常的相關(guān)資料,需要的朋友可以參考下2023-11-11Java的Jackson庫中復(fù)雜對象集合的幾種簡單轉(zhuǎn)換
本文主要介紹了Java的Jackson庫中復(fù)雜對象集合的幾種簡單轉(zhuǎn)換。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02SpringBoot接口數(shù)據(jù)加解密實戰(zhàn)記錄
現(xiàn)今對于大多數(shù)公司來說,信息安全工作尤為重要,下面這篇文章主要給大家介紹了關(guān)于SpringBoot接口數(shù)據(jù)加解密的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07使用FormData上傳二進制文件、對象、對象數(shù)組方式
這篇文章主要介紹了使用FormData上傳二進制文件、對象、對象數(shù)組方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01