欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

1、修改最外層pom文件

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

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

<packaging>pom</packaging>

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

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

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

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

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

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

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

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

3、轉(zhuǎn)移代碼

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

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

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

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

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

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

4、修改子模塊pom文件

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

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

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

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

5、配置打包插件

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

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

因?yàn)榇虬鼤r,maven插件會去找SpringBoot的啟動類,如果沒有啟動類會打包失敗

那么,此時我就需要在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>

注意:在最外層的父級pom中如果同樣存在spring-boot-maven-plugin的配置,記得一定要刪除掉

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

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • Java之ThreadLocal使用常見和方式案例講解

    Java之ThreadLocal使用常見和方式案例講解

    這篇文章主要介紹了Java之ThreadLocal使用常見和方式案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java實(shí)現(xiàn)AES算法的實(shí)例代碼

    Java實(shí)現(xiàn)AES算法的實(shí)例代碼

    高級加密標(biāo)準(zhǔn)(AES,Advanced?Encryption?Standard)為最常見的對稱加密算法(微信小程序加密傳輸就是用這個加密算法的),本文重點(diǎn)給大家介紹Java實(shí)現(xiàn)AES算法的實(shí)例代碼,感興趣的朋友一起看看吧
    2022-02-02
  • 關(guān)于spring?boot使用?jdbc+mysql?連接的問題

    關(guān)于spring?boot使用?jdbc+mysql?連接的問題

    這篇文章主要介紹了spring?boot使用?jdbc+mysql?連接,在這里mysql?8.x版本驅(qū)動包,要使用?com.mysql.cj.jdbc.Driver作為驅(qū)動類,文中給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-03-03
  • Java LinkedList源碼深入分析

    Java LinkedList源碼深入分析

    鏈表(Linkedlist)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點(diǎn)里存到下一個節(jié)點(diǎn)的地址。鏈表可分為單向鏈表和雙向鏈表
    2022-08-08
  • Java等待喚醒機(jī)制線程通信原理解析

    Java等待喚醒機(jī)制線程通信原理解析

    這篇文章主要介紹了Java等待喚醒機(jī)制線程通信原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解使用spring cloud config來統(tǒng)一管理配置文件

    詳解使用spring cloud config來統(tǒng)一管理配置文件

    這篇文章主要介紹了詳解使用spring cloud config來統(tǒng)一管理配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • springboot如何去除debug日志

    springboot如何去除debug日志

    這篇文章主要介紹了springboot如何去除debug日志的方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用bitset實(shí)現(xiàn)毫秒級查詢(實(shí)例講解)

    使用bitset實(shí)現(xiàn)毫秒級查詢(實(shí)例講解)

    下面小編就為大家?guī)硪黄褂胋itset實(shí)現(xiàn)毫秒級查詢(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    這篇文章主要介紹了Spring Boot 集成 ElasticSearch應(yīng)用小結(jié),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)下載文件的6種方式

    Java實(shí)現(xiàn)下載文件的6種方式

    本文主要介紹了Java實(shí)現(xiàn)下載文件的6種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06

最新評論