IDEA2022搭建Spring?Cloud多模塊項(xiàng)目的詳細(xì)過程
Springboot多模塊項(xiàng)目搭建
創(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)建,這種方式父模塊無法管理子模塊的依賴仲裁,需要每個(gè)子模塊自行管理,就失去了父模塊的用處了。
1.idea -> file -> new -> project,選擇Spring Initializr,填寫相關(guān)的Group,Artifact,Package name 等信息,點(diǎn)擊Next;
JDK版本可以根據(jù)需要選擇高一些的版本,我是由于需要兼容線上的老版本系統(tǒng),所以沿用JDK1.8的版本

2.根據(jù)需要選取初始化需要加載的依賴,我添加了Cloud Bootstrap,可以自動生成Spring Cloud依賴管理包,直接點(diǎn)解Create

3.刪除生成后的src目錄,pom.xml中添加pom屬性

4.剛才創(chuàng)建時(shí)選擇的Cloud Bootstrap 會在pom文件中自動生成spring-cloud 相關(guān)的依賴配置,spring-cloud-dependencies 是一個(gè)依賴管理器的pom文件,是對spring cloud版本的依賴管理

創(chuàng)建子模塊
使用maven方式創(chuàng)建api,biz,core,dao,integration,common,model 相關(guān)模塊,創(chuàng)建內(nèi)部依賴模塊是使用maven的方式創(chuàng)建,便于總模塊管理子模塊的依賴仲裁;
點(diǎn)擊項(xiàng)目根目錄,右鍵 new -> module,選用maven的方式新建模塊,Archetype可以選擇quickstart,分別添加api,biz,core,dao,integration,common,model 這些模塊。直接點(diǎn)擊Create

創(chuàng)建dao模塊


創(chuàng)建web模塊
web模塊可以采用Spring Initializr的方式創(chuàng)建,可以自動初始化web相關(guān)的pom包和springboot的啟動類,之后再修改web模塊的pom文件的標(biāo)簽為當(dāng)前父工程的配置即可;
1.點(diǎn)擊項(xiàng)目根目錄,右鍵 new -> module,選用Spring Initializr的方式新建web模塊,點(diǎn)擊Next

2.根據(jù)自己的需要勾選所需的依賴,我選擇了Spring Boot DevTools 和 Spring Web,點(diǎn)擊Create

3.修改web模塊的pom文件的,將spring-boot-starter-parent 替換為父工程的pom配置

4.在父工程的pom文件中新增web模塊的module依賴

創(chuàng)建完之后的工程目錄結(jié)構(gòu)如圖:

添加模塊依賴關(guān)系
創(chuàng)建完所有模塊之后,自行在各個(gè)模塊的pom 文件中添加模塊依賴配置,推薦模塊依賴關(guān)系如下圖:

模塊職責(zé)&關(guān)系說明
- web模塊:
- HTTP,HTTPS請求入口層,只負(fù)責(zé)對訪問控制進(jìn)行轉(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)模型進(jìn)行轉(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模塊:
- 存放項(xiàng)目里面所有模塊公用的組件,有些組件如果只是某個(gè)模塊里面自己使用不要放在common下面,可以在本模塊下建立utils包,例如:ResponseUtil之類只有web層才會使用到的工具類;
- model模塊:
存放項(xiàng)目的數(shù)據(jù)模型,如常量、枚舉、業(yè)務(wù)數(shù)據(jù)模型等;
多模塊啟動配置文件管理
多模塊化后,想讓每個(gè)模塊的配置文件獨(dú)立管理,整合的時(shí)候再合并各個(gè)不同的模塊的配置,需要先在每個(gè)模塊下面創(chuàng)建一個(gè)配置文件,文件的命名格式必須是application-xxx.yml,啟動層模塊想引用下層模塊的配置時(shí)需要在配置文件中添加spring.profiles.include: xxx 或者spring.profiles.active: xxx (xxx為子模塊配置文件的后綴標(biāo)識名)配置項(xiàng)顯示引用所需要的配置文件。注意啟動層模塊的配置文件名必須是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這兩個(gè)配置文件中加載其它配置文件的配置,所以啟動層模塊的配置文件名必須是application.properties或application.yml。
到此這篇關(guān)于IDEA2022搭建Spring Cloud多模塊項(xiàng)目的文章就介紹到這了,更多相關(guān)Spring Cloud多模塊項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java異常繼承何類,運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)
下面小編就為大家?guī)硪黄猨ava異常繼承何類,運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
springboot如何接收復(fù)雜參數(shù)(同時(shí)接收J(rèn)SON與文件)
文章介紹了在Spring Boot中同時(shí)處理JSON和文件上傳時(shí)使用`@RequestPart`注解的方法,`@RequestPart`可以接收多種格式的參數(shù),包括JSON和文件,并且可以作為`multipart/form-data`格式中的key2025-02-02
通過實(shí)例學(xué)習(xí)Java集合框架HashSet
這篇文章主要介紹了通過實(shí)例學(xué)習(xí)Java集合框架HashSet,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
從dubbo zookeeper注冊地址提取出zookeeper地址的方法
今天小編就為大家分享一篇關(guān)于從dubbo zookeeper注冊地址提取出zookeeper地址的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
詳解SpringMVC組件之HandlerMapping(二)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(二),HandlerMapping組件是Spring?MVC核心組件,用來根據(jù)請求的request查找對應(yīng)的Handler,在Spring?MVC中,有各式各樣的Web請求,每個(gè)請求都需要一個(gè)對應(yīng)的Handler來處理,需要的朋友可以參考下2023-08-08
Java函數(shù)式編程(十二):監(jiān)控文件修改
這篇文章主要介紹了Java函數(shù)式編程(十二):監(jiān)控文件修改,本文是系列文章的第12篇,其它文章請參閱本文底部的相關(guān)文章,需要的朋友可以參考下2014-09-09

