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

構(gòu)建多模塊的Spring Boot項(xiàng)目步驟全紀(jì)錄

 更新時(shí)間:2019年05月15日 09:42:18   作者:zkm1992  
這篇文章主要給大家介紹了關(guān)于如何構(gòu)建多模塊的Spring Boot項(xiàng)目的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

眾所周知,在多個(gè)項(xiàng)目中可能會(huì)相同的模塊,如果每個(gè)項(xiàng)目都去創(chuàng)建一遍的話,這樣開(kāi)發(fā)效率會(huì)很低。比如在開(kāi)發(fā)一個(gè)APP應(yīng)用的時(shí)候,有供APP使用的接口項(xiàng)目、后臺(tái)管理系統(tǒng),兩個(gè)項(xiàng)目共用一套數(shù)據(jù)庫(kù),分開(kāi)的話需要配置多次mybatis,如果有些表需要改動(dòng)的話,則都需要改動(dòng),所以使用多模塊管理這些模塊的話,會(huì)非常的方便。

通過(guò)閱讀本文你將了解到:如何將已有SpringBoot項(xiàng)目改成多模塊 & 如何新構(gòu)建多模塊SpringBoot項(xiàng)目 以下示例基于我正在使用的order(訂單服務(wù))進(jìn)行演示,無(wú)論你用的是什么項(xiàng)目,原理都是一樣的,這里不要糾結(jié)使用的是什么服務(wù)。

1、修改最外層pom文件

最外層pom文件是用來(lái)管理其他子模塊的父級(jí)pom,重點(diǎn)將<packaging>節(jié)點(diǎn)修改為pom,修改前<packaging>可能是jar或war

這里修改成pom是因?yàn)榇虬鼤r(shí),父pom是依賴于子pom進(jìn)行打包的,父pom會(huì)通過(guò)<modules>節(jié)點(diǎn)將所有的子pom模塊引入并且進(jìn)行管理

<packaging>pom</packaging>

2、創(chuàng)建多模塊

假設(shè)你已經(jīng)設(shè)計(jì)好子模塊的拆分原則,這里開(kāi)始基于你自己的設(shè)計(jì)進(jìn)行子模塊的創(chuàng)建

例如:我將order項(xiàng)目拆分成三個(gè)不通的子模塊,即common、client、server,每個(gè)模塊負(fù)責(zé)的事情是不同的

第一步:右鍵項(xiàng)目名稱(chēng),選擇New->Module

第二步:在彈出的New Module窗口選擇Maven

第三步:點(diǎn)擊Next,并輸入子模塊的ArtifactId,如:common、client、server等,然后點(diǎn)擊Next

第四步:檢查并確認(rèn)子模塊名稱(chēng)及路徑是否正確,如果正確則點(diǎn)擊Finish

至此,common模塊就創(chuàng)建成功了,你會(huì)發(fā)現(xiàn)order根目錄下多了一個(gè)common子模塊

3、轉(zhuǎn)移代碼

創(chuàng)建了common模塊后,如果有需要移動(dòng)至common子模塊下的代碼,則根據(jù)原來(lái)的代碼目錄結(jié)構(gòu),在common-src-main-java下創(chuàng)建相同的目錄結(jié)構(gòu)即可

例如:我項(xiàng)將ProductInfoOutput移動(dòng)到common子模塊下,原來(lái)ProductInfoOutput的保路經(jīng)為com.imooc.order.common,那么我需要在common-src-main-java下創(chuàng)建com.imooc.order.common包,并將ProductInfoOutput拽進(jìn)去

補(bǔ)充說(shuō)明:我在創(chuàng)建com.imooc.order.common包時(shí)遇到了一個(gè)問(wèn)題,就是右鍵java文件夾然后選New->Package并創(chuàng)建com.imooc.order.common時(shí),創(chuàng)建出來(lái)的包路徑時(shí)沒(méi)有層次結(jié)構(gòu)的,也就是說(shuō)IDEA單純的為我創(chuàng)建了一個(gè)名為com.imooc.order.common的文件夾

經(jīng)研究發(fā)現(xiàn),是視圖的問(wèn)題,將左上角的Project改成Project Files,然后按照上面的方式創(chuàng)建即可

在轉(zhuǎn)移test目錄下的代碼時(shí),同樣需要注意test目錄下的包結(jié)構(gòu)要與轉(zhuǎn)移前的結(jié)構(gòu)一致,這里以server模塊為例,因?yàn)閏ommon下的test目錄沒(méi)有代碼

當(dāng)我們創(chuàng)建好多有的子模塊后,觀察最外層的父級(jí)pom文件內(nèi)容,發(fā)現(xiàn)父級(jí)pom已經(jīng)將我們創(chuàng)建的子模塊作為modules引入進(jìn)來(lái)了

4、修改子模塊pom文件

當(dāng)我們創(chuàng)建好多個(gè)子模塊后,子模塊間可能會(huì)存在依賴關(guān)系,例如我的server模塊會(huì)依賴common模塊下的ProductInfoOutput類(lèi)

那么我需要在server模塊的pom文件中將common模塊引入

其他模塊間的依賴引用同理

修改完子pom的依賴關(guān)系后,一定要刷新pom文件,不然依賴不會(huì)生效

5、配置打包插件

SpringBoot項(xiàng)目一般都會(huì)打成jar包部署,所以需要在pom中引入spring-boot-maven-plugin的maven插件

例如:我現(xiàn)在要打包order項(xiàng)目,此時(shí)我的SpringBoot運(yùn)行主類(lèi)在server模塊下,那么我就需要以server模塊為主要的打包對(duì)象

因?yàn)榇虬鼤r(shí),maven插件會(huì)去找SpringBoot的啟動(dòng)類(lèi),如果沒(méi)有啟動(dòng)類(lèi)會(huì)打包失敗

那么,此時(shí)我就需要在server模塊的pom中增加spring-boot-maven-plugin的相關(guān)配置

<build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>

注意:在最外層的父級(jí)pom中如果同樣存在spring-boot-maven-plugin的配置,記得一定要?jiǎng)h除掉

6、打包并運(yùn)行服務(wù)

在maven窗口一次執(zhí)行Lifecycle下的clean和install(如果你會(huì)maven命令,也可以用命令操作)

可以看到,這幾個(gè)模塊都是SUCCESS,說(shuō)明構(gòu)建成功了

那我們要的可以運(yùn)行的jar文件在server模塊的target目錄下,我們找到它

最后放到服務(wù)器上運(yùn)行這個(gè)jar包

使用命令:nohuo java -jarorder-server-0.0.1-SNAPSHOT.jar > order.log 2>&1 &

可以看到,項(xiàng)目已經(jīng)成功啟動(dòng)了,端口號(hào)為默認(rèn)的8080

至此,構(gòu)建多模塊的SpringBoot項(xiàng)目就已經(jīng)告一段落了

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • JAVA實(shí)現(xiàn)caesar凱撒加密算法

    JAVA實(shí)現(xiàn)caesar凱撒加密算法

    Carsar加密算法是最簡(jiǎn)單的加密算法,原理是把一個(gè)字母在字母表中移動(dòng)相應(yīng)的位置,比如輸入a,將其移動(dòng)3位,經(jīng)過(guò)Caesar加密后輸出的d,位置可以循環(huán)移動(dòng),輸入x,則輸出a
    2014-01-01
  • spring Profile如何為不同環(huán)境提供不同的配置支持

    spring Profile如何為不同環(huán)境提供不同的配置支持

    這篇文章主要介紹了spring Profile如何為不同環(huán)境提供不同的配置支持,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java泛型 <T> T、 T、<T>的用法小結(jié)

    Java泛型 <T> T、 T、<T>的用法小結(jié)

    T在Java泛型中,被稱(chēng)作類(lèi)型變量, 有的方法返回值是<T> T,有的是T,區(qū)別在哪里,本文主要介紹了Java泛型 <T> T、 T、<T>的用法小結(jié),具有一定的參考價(jià)值,感興趣的可以了解下
    2023-12-12
  • java 算法之希爾排序詳解及實(shí)現(xiàn)代碼

    java 算法之希爾排序詳解及實(shí)現(xiàn)代碼

    這篇文章主要介紹了java 算法之希爾排序詳解及實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java編程求二叉樹(shù)的鏡像兩種方法介紹

    Java編程求二叉樹(shù)的鏡像兩種方法介紹

    這篇文章主要介紹了Java編程求二叉樹(shù)的鏡像兩種方法介紹,分享了兩種方法,遞歸與非遞歸,每種方法又分別介紹了兩種解決思路,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • java布局管理之CardLayout簡(jiǎn)單實(shí)例

    java布局管理之CardLayout簡(jiǎn)單實(shí)例

    這篇文章主要為大家詳細(xì)介紹了java布局管理之CardLayout的簡(jiǎn)單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • spring打包到j(luò)ar包的問(wèn)題解決

    spring打包到j(luò)ar包的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于spring打包到j(luò)ar包遇到的問(wèn)題的解決方法,文中通過(guò)實(shí)例代碼結(jié)束的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用spring打包具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java實(shí)現(xiàn)為圖片添加水印功能

    Java實(shí)現(xiàn)為圖片添加水印功能

    在圖像處理領(lǐng)域,水印是一種常見(jiàn)的保護(hù)版權(quán)和標(biāo)識(shí)圖片歸屬的方法,Java提供了強(qiáng)大的圖像處理能力,可以通過(guò)Graphics2D類(lèi)在圖像上繪制水印,下面我們來(lái)看看具體操作步驟吧
    2025-02-02
  • Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式

    Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式

    這篇文章主要為大家介紹了Spring?Boot異步線程間數(shù)據(jù)傳遞的四種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • RocketMQ源碼分析之Broker過(guò)期消息清理機(jī)制

    RocketMQ源碼分析之Broker過(guò)期消息清理機(jī)制

    這篇文章主要為大家介紹了RocketMQ源碼分析之Broker過(guò)期消息清理機(jī)制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評(píng)論

阜阳市| 固安县| 崇礼县| 阳东县| 台安县| 阿合奇县| 姜堰市| 太湖县| 玉门市| 遂宁市| 温泉县| 改则县| 吴桥县| 东丰县| 南康市| 莒南县| 崇信县| 达孜县| 昆山市| 白城市| 新河县| 泰宁县| 许昌市| 南漳县| 合川市| 荣成市| 文山县| 蒲江县| 淮南市| 奉化市| 武定县| 夏津县| 栖霞市| 新邵县| 同江市| 游戏| 富宁县| 上栗县| 吉隆县| 富阳市| 鄂州市|