最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA2022搭建Spring?Cloud多模塊項(xiàng)目的詳細(xì)過(guò)程

 更新時(shí)間:2022年10月13日 14:36:20   作者:Joshua_2019  
這篇文章主要介紹了IDEA2022搭建Spring?Cloud多模塊項(xiàng)目,網(wǎng)上有很多教程父模塊都是通過(guò)maven的方式創(chuàng)建的,然后子模塊是通過(guò)Spring?Initalizr方式創(chuàng)建,這種方式父模塊無(wú)法管理子模塊的依賴(lài)仲裁,需要每個(gè)子模塊自行管理,就失去了父模塊的用處了

Springboot多模塊項(xiàng)目搭建

創(chuàng)建maven父工程

注意:創(chuàng)建父模塊選用Spring Initializr的方式創(chuàng)建,讓父模塊繼承springboot的maven配置,之后的所有子模塊都通過(guò)maven的方式創(chuàng)建,子模塊繼承父模塊就會(huì)間接繼承springboot相關(guān)的配置,web,api模塊再另外添加spring-boot-starter-web,spring-boot-starter-tomcat相關(guān)的依賴(lài)。網(wǎng)上有很多教程父模塊都是通過(guò)maven的方式創(chuàng)建的,然后子模塊是通過(guò)Spring Initalizr方式創(chuàng)建,這種方式父模塊無(wú)法管理子模塊的依賴(lài)仲裁,需要每個(gè)子模塊自行管理,就失去了父模塊的用處了。

1.idea -> file -> new -> project,選擇Spring Initializr,填寫(xiě)相關(guān)的Group,Artifact,Package name 等信息,點(diǎn)擊Next;
JDK版本可以根據(jù)需要選擇高一些的版本,我是由于需要兼容線上的老版本系統(tǒng),所以沿用JDK1.8的版本

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

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

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

創(chuàng)建子模塊

使用maven方式創(chuàng)建api,biz,core,dao,integration,common,model 相關(guān)模塊,創(chuàng)建內(nèi)部依賴(lài)模塊是使用maven的方式創(chuàng)建,便于總模塊管理子模塊的依賴(lài)仲裁;

點(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)建,可以自動(dòng)初始化web相關(guān)的pom包和springboot的啟動(dòng)類(lèi),之后再修改web模塊的pom文件的標(biāo)簽為當(dāng)前父工程的配置即可;

1.點(diǎn)擊項(xiàng)目根目錄,右鍵 new -> module,選用Spring Initializr的方式新建web模塊,點(diǎn)擊Next

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

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

4.在父工程的pom文件中新增web模塊的module依賴(lài)

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

添加模塊依賴(lài)關(guān)系

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

模塊職責(zé)&關(guān)系說(shuō)明

  • web模塊:
  • HTTP,HTTPS請(qǐng)求入口層,只負(fù)責(zé)對(duì)訪問(wèn)控制進(jìn)行轉(zhuǎn)發(fā)、參數(shù)轉(zhuǎn)換,不編寫(xiě)復(fù)雜的業(yè)務(wù)邏輯,返回的結(jié)果數(shù)據(jù)用XxxVO模型封裝,最終返回給前端的數(shù)據(jù)用BizResult封裝;
  • biz模塊:
  • 負(fù)責(zé)業(yè)務(wù)邏輯處理,biz層通常提供業(yè)務(wù)具體處理流程相關(guān)的服務(wù);
  • core模塊:
  • 負(fù)責(zé)對(duì)dao層返回的DO或integration層返回的外部系統(tǒng)模型進(jìn)行轉(zhuǎn)換、解析、業(yè)務(wù)邏輯處理。core層通常提供的是通用的服務(wù);
  • api模塊:
  • 負(fù)責(zé)對(duì)其它微服務(wù)系統(tǒng)提供接口,不允許拋異常,放回的結(jié)果統(tǒng)一使用BizResult封裝;
  • dao模塊:
  • 只負(fù)責(zé)MySQL數(shù)據(jù)庫(kù)的對(duì)接操作,返回XxxDO對(duì)象;
  • integration模塊:
  • 負(fù)責(zé)外部系統(tǒng)的對(duì)接,如算法、語(yǔ)音解析、微信接入、支付寶接入等,直接返回外部系統(tǒng)的領(lǐng)域模型;
  • common模塊:
  • 存放項(xiàng)目里面所有模塊公用的組件,有些組件如果只是某個(gè)模塊里面自己使用不要放在common下面,可以在本模塊下建立utils包,例如:ResponseUtil之類(lèi)只有web層才會(huì)使用到的工具類(lèi);
  • model模塊:

存放項(xiàng)目的數(shù)據(jù)模型,如常量、枚舉、業(yè)務(wù)數(shù)據(jù)模型等;

多模塊啟動(dòng)配置文件管理

多模塊化后,想讓每個(gè)模塊的配置文件獨(dú)立管理,整合的時(shí)候再合并各個(gè)不同的模塊的配置,需要先在每個(gè)模塊下面創(chuàng)建一個(gè)配置文件,文件的命名格式必須是application-xxx.yml,啟動(dòng)層模塊想引用下層模塊的配置時(shí)需要在配置文件中添加spring.profiles.include: xxx 或者spring.profiles.active: xxx (xxx為子模塊配置文件的后綴標(biāo)識(shí)名)配置項(xiàng)顯示引用所需要的配置文件。注意啟動(dòng)層模塊的配置文件名必須是application.yml或者application.properties,不能帶上-xxx的后綴,不然導(dǎo)致spring.profiles.active的配置失效,從而無(wú)法加載子模塊的配置。例如啟動(dòng)層是web層,web層的配置文件命名為application.yml,如果命名是application-web.yml會(huì)導(dǎo)致子模塊的配置無(wú)法加載。

ConfigFileApplicationListener 子模塊配置加載類(lèi)源碼說(shuō)明如下,默認(rèn)是從加載application.properties或application.yml這兩個(gè)配置文件中加載其它配置文件的配置,所以啟動(dòng)層模塊的配置文件名必須是application.properties或application.yml。

到此這篇關(guān)于IDEA2022搭建Spring Cloud多模塊項(xiàng)目的文章就介紹到這了,更多相關(guān)Spring Cloud多模塊項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java異常繼承何類(lèi),運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)

    java異常繼承何類(lèi),運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)

    下面小編就為大家?guī)?lái)一篇java異常繼承何類(lèi),運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • springboot如何接收復(fù)雜參數(shù)(同時(shí)接收J(rèn)SON與文件)

    springboot如何接收復(fù)雜參數(shù)(同時(shí)接收J(rèn)SON與文件)

    文章介紹了在Spring Boot中同時(shí)處理JSON和文件上傳時(shí)使用`@RequestPart`注解的方法,`@RequestPart`可以接收多種格式的參數(shù),包括JSON和文件,并且可以作為`multipart/form-data`格式中的key
    2025-02-02
  • 通過(guò)實(shí)例學(xué)習(xí)Java集合框架HashSet

    通過(guò)實(shí)例學(xué)習(xí)Java集合框架HashSet

    這篇文章主要介紹了通過(guò)實(shí)例學(xué)習(xí)Java集合框架HashSet,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java實(shí)現(xiàn)郵件找回密碼功能

    Java實(shí)現(xiàn)郵件找回密碼功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)郵件找回密碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • jdk線程池的實(shí)現(xiàn)

    jdk線程池的實(shí)現(xiàn)

    本文主要介紹了jdk線程池的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot3如何集成Hazelcast

    SpringBoot3如何集成Hazelcast

    Hazelcast是一款優(yōu)秀的開(kāi)源內(nèi)存數(shù)據(jù)網(wǎng)格平臺(tái),它能夠提供分布式數(shù)據(jù)存儲(chǔ)和緩存解決方案,通過(guò)與SpringBoot3的整合,開(kāi)發(fā)者可以輕松實(shí)現(xiàn)分布式緩存、數(shù)據(jù)共享和會(huì)話管理等功能,Hazelcast的內(nèi)存數(shù)據(jù)網(wǎng)格特性支持高性能的緩存系統(tǒng),能夠減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù),提升應(yīng)用性能
    2024-10-10
  • mybatis-generator如何自定義注釋生成

    mybatis-generator如何自定義注釋生成

    這篇文章主要介紹了mybatis-generator如何自定義注釋生成的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法

    從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法

    今天小編就為大家分享一篇關(guān)于從dubbo zookeeper注冊(cè)地址提取出zookeeper地址的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 詳解SpringMVC組件之HandlerMapping(二)

    詳解SpringMVC組件之HandlerMapping(二)

    這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(二),HandlerMapping組件是Spring?MVC核心組件,用來(lái)根據(jù)請(qǐng)求的request查找對(duì)應(yīng)的Handler,在Spring?MVC中,有各式各樣的Web請(qǐng)求,每個(gè)請(qǐng)求都需要一個(gè)對(duì)應(yīng)的Handler來(lái)處理,需要的朋友可以參考下
    2023-08-08
  • Java函數(shù)式編程(十二):監(jiān)控文件修改

    Java函數(shù)式編程(十二):監(jiān)控文件修改

    這篇文章主要介紹了Java函數(shù)式編程(十二):監(jiān)控文件修改,本文是系列文章的第12篇,其它文章請(qǐng)參閱本文底部的相關(guān)文章,需要的朋友可以參考下
    2014-09-09

最新評(píng)論

盐亭县| 运城市| 金溪县| 丰原市| 辽阳市| 马公市| 开平市| 建始县| 荣成市| 乌拉特后旗| 车致| 平利县| 沭阳县| 涟源市| 涟源市| 大理市| 嫩江县| 建平县| 盘山县| 澄迈县| 潍坊市| 简阳市| 贞丰县| 兴山县| 墨竹工卡县| 峨山| 务川| 馆陶县| 丽水市| 永州市| 汾阳市| 卓尼县| 临城县| 徐闻县| 泽州县| 蓝田县| 延津县| 民和| 达日县| 崇左市| 郓城县|