基于SpringBoot構建分模塊項目

前言

步驟過于詳細,多圖慎入2菀觥5鲡!

假設一個場景撩独,要開發(fā)一個4s店維修部的辦公系統(tǒng)敞曹,其功能有:前臺接待,維修搶單综膀,財務結算澳迫,庫存管理。于是我們創(chuàng)建一個項目balabalabala寫完交工剧劝。

一段時間后橄登,客戶提出,庫存管理出現(xiàn)了重大調整讥此。于是我們二次開發(fā)拢锹,寫好之后,告知客戶:“系統(tǒng)更新暂论,所有部門暫停使用15分鐘面褐、、取胎、”展哭。于是湃窍,客戶排隊,維修停工匪傍,結算暫停您市、、役衡、店內一片慌亂茵休。

又一段時間后,客戶提出手蝎,財務結算需要修改榕莺。于是我們再次開發(fā),寫好之后棵介,告知客戶:“系統(tǒng)更新钉鸯,所有部門暫停使用15分鐘、邮辽、唠雕、”。于是吨述,客戶排隊岩睁,維修停工,倉庫休息揣云、捕儒、、店內一片慌亂灵再。

雙一段時間后肋层,客戶提出亿笤、翎迁、、

叒一段時間后净薛,客戶開始抱怨:“我只是調整某一個部門的業(yè)務汪榔,你們能不能不要把整個系統(tǒng)停掉,這樣損失太大了肃拜、痴腌、、”

于是你對每個功能做一個系統(tǒng)燃领,接待系統(tǒng)士聪,維修系統(tǒng),財務系統(tǒng)猛蔽,庫存系統(tǒng)剥悟。四個系統(tǒng)應運而生灵寺;

叕一段時間后,客戶提出区岗,你看登錄后這個位置啊略板,把我的名字寫到公司名字下面,還要把十幾個股東的資料展示出來慈缔,還有叮称、、藐鹤、

于是你帶著需求回去面對四個系統(tǒng)的相同功能修改瓤檐、、娱节、卒距帅!

采用分模塊的方式構建項目就是將上例中用到的兩種方式結合在一起,簡而言之就是將一個大的項目拆分成小的模塊括堤,各功能之間互不干擾又可實現(xiàn)共用基礎參數(shù);

構建

以上述需求為例碌秸,我們在拆分之時,根據(jù)需求悄窃,將其分成

  • 父模塊

    • erp-common

    • erp-service

    • erp-service-impl

    • erp-web-reception

    • erp-web-finance

    • erp-web-fix

    • erp-web-repertory

創(chuàng)建父模塊

構建分模塊項目的時候首先需要創(chuàng)建一個父級的模塊讥电,所有的子模塊均繼承自父模塊。因為我們整體架構采用SpringBoot構建轧抗,所以父模塊要創(chuàng)建為SpringBoot項目

  1. 選擇Spring Initializr --> Next
image
  1. 填寫項目名稱恩敌,選擇JDK版本,其他無需修改 --> Next

    • Group: 一般為公司域名倒置

    • Artifact: 項目名

image
  1. 選擇SpringBoot版本横媚,其他無需勾選 --> Next
image
  1. 填寫項目名纠炮、項目地址 --> Finish
image
  1. 創(chuàng)建之后,項目結構如下灯蝴,刪除如下選中部分文件
image
  1. 至此恢口,父模塊創(chuàng)建完成,此時的pom文件如下穷躁,此pom即是下文所說的父pom文件
image

創(chuàng)建 erp-common

erp-common模塊我們約定只存放實體類耕肩,工具類,常量類问潭、異常類等一些共用且不需要交由Spring管理的類猿诸,因此創(chuàng)建的時候不需要它是一個SpringBoot項目,只需要創(chuàng)建為傳統(tǒng)的Maven項目即可;

  1. 選中我們的項目名Wayne-ERP狡忙,右鍵New --> Module
image
  1. 選擇Maven梳虽,以表示我們創(chuàng)建的是一個Maven項目 --> Next
image
  1. 此處填寫的artifactId就是我們的模塊名,創(chuàng)建該模塊時灾茁,如果第一步選中了父模塊窜觉,那么此處GroupId和Version都會自動填充是复,如果沒有自動填充,說明創(chuàng)建該模塊的時候沒有選中Wayne-ERP --> Next
image
  1. 該模塊的名稱以及該模塊存放的位置竖螃,我一般在自動生成的名稱中間加個-就拿來直接使用了 --> Finish
image
  1. 最下面的pom.xml即是父pom淑廊,父pom內容如下,增加了一個module子模塊
image
  1. erp-common的pom文件如下特咆,其中圈起部分為自己添加內容季惩,relativePath 指向父pom位置
image
  1. 至此,erp-common模塊創(chuàng)建完成腻格,此時項目結構如下画拾,
image

創(chuàng)建 erp-service

erp-service模塊我們約定只存放service接口,因此也不需要交由Spring去管理菜职,所以我們也將其創(chuàng)建為傳統(tǒng)的Maven項目青抛,創(chuàng)建方式與erp-common相同,此處不再贅述酬核,如有不知道怎么操作的同學可私聊我或者發(fā)郵件給我

  1. 創(chuàng)建完成之后蜜另,此時父pom內容如下
image
  1. erp-service的pom文件如下
image

創(chuàng)建erp-service-impl

erp-service-impl我們約定存放service實現(xiàn)類,即業(yè)務層代碼嫡意,在Controller中需要用到自動注入举瑰,因此需要交由Spring管理,所以我們將其創(chuàng)建為SpringBoot項目蔬螟。在創(chuàng)建Maven的子模塊與創(chuàng)建SpringBoot的子模塊有些差別此迅,下面列出詳細步驟;

  1. 選中項目名Wayne-ERP,右鍵New --> Module旧巾,在彈出的頁面中選擇Spring Initializr --> Next

    image
  2. 此處Group需要手動填寫耸序,填好之后 --> Next

image
  1. 選擇SpringBoot版本,與創(chuàng)建父模塊時選擇版本要保持一致
image
  1. 點擊Next --> Finish

  2. 創(chuàng)建完成之后鲁猩,需要在父pom中手動添加erp-service-impl子模塊坎怪,并刪除dependencies中的依賴

image
  1. 將erp-service-impl的pom文件中parent標簽,手動替換為如下格式
image
  1. 此時項目結構如下绳匀,刪除如下選中部分文件芋忿,因為我們程序的啟動入口在erp-web-*炸客,所以在erp-service-impl中不需要main方法(SpringBoot是以Main方法啟動的)
image
  1. 至此疾棵,erp-service-impl模塊創(chuàng)建完成,整體項目結構如下
image

創(chuàng)建erp-web-repertory

此模塊即是我們倉庫管理系統(tǒng)的打包入口痹仙,啟動入口是尔,存放與倉管相關接口和頁面

  1. 創(chuàng)建方式與erp-service-impl相似,此處需要修改Package內容开仰,此處包名表示SpringBoot自動生成的main方法所在的位置拟枚,因為SpringBoot基于main方法啟動時薪铜,默認會自動掃描本包及本包下所有子包的內容,所以我們將main方法向外提一層恩溅;
image
  1. 此處表示SpringBoot創(chuàng)建好之后隔箍,自動添加的依賴,我們只選擇Web即可脚乡,表明這是一個Web項目蜒滩,后續(xù)需要用到第三方框架,我們再自行整合奶稠;
image
  1. 其余步驟與erp-service-impl相似俯艰,只是不需要刪除自動生成的文件,此時項目接口如下:
image

創(chuàng)建其余web模塊

此時我們還剩erp-web-reception锌订、erp-web-finance竹握、erp-web-fix沒有創(chuàng)建,這三個模塊與erp-web-repertory創(chuàng)建方式相同辆飘,此處就不再贅述啦辐,只需注意命名問題即可;

完整項目結構:

image

依賴

各個模塊已經創(chuàng)建完成蜈项,還剩下的就是各個模塊之間的依賴關系了昧甘,各模塊之間應該怎么依賴呢?具體的哪個包又應該放在哪個模塊下面的战得?我整理一張圖片供大家參考:

image

pom文件如下:

image

web模塊pom基本相似充边,都只引入erp-service-impl即可,在此只列舉一個

image

運行

每個web模塊對應一個main方法常侦,啟動時找到各自的main方法浇冰,點擊啟動即可,idea一般會自動檢測SpringBoot程序入口聋亡,想跑哪個點哪個~~

image

擴展

另一種模塊結構肘习,感興趣的可以發(fā)郵件與我;
image

占位符

常規(guī)占位 (¬_¬)…

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末坡倔,一起剝皮案震驚了整個濱河市漂佩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罪塔,老刑警劉巖投蝉,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異征堪,居然都是意外死亡瘩缆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門佃蚜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庸娱,“玉大人着绊,你說我怎么就攤上這事∈煳荆” “怎么了归露?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤儿。 經常有香客問我靶擦,道長,這世上最難降的妖魔是什么雇毫? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任玄捕,我火速辦了婚禮,結果婚禮上棚放,老公的妹妹穿的比我還像新娘枚粘。我一直安慰自己,他們只是感情好飘蚯,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布馍迄。 她就那樣靜靜地躺著,像睡著了一般局骤。 火紅的嫁衣襯著肌膚如雪攀圈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天峦甩,我揣著相機與錄音赘来,去河邊找鬼。 笑死凯傲,一個胖子當著我的面吹牛犬辰,可吹牛的內容都是我干的。 我是一名探鬼主播冰单,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼幌缝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诫欠?” 一聲冷哼從身側響起涵卵,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荒叼,沒想到半個月后轿偎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡甩挫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年贴硫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伊者。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡英遭,死狀恐怖,靈堂內的尸體忽然破棺而出亦渗,到底是詐尸還是另有隱情挖诸,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布法精,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏喧兄。R本人自食惡果不足惜由蘑,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帮碰。 院中可真熱鬧相味,春花似錦、人聲如沸殉挽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斯碌。三九已至一死,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間傻唾,已是汗流浹背投慈。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冠骄,地道東北人逛裤。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像猴抹,于是被迫代替她去往敵國和親带族。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容