項(xiàng)目的拆分以及管理——Maven繼承和依賴

一、傳統(tǒng)項(xiàng)目開發(fā)的問題

傳統(tǒng)的項(xiàng)目中,會(huì)將全部的業(yè)務(wù)都寫到一個(gè)項(xiàng)目中,用一臺(tái)tomcat部署。此時(shí)如果某一個(gè)業(yè)務(wù)操作造成服務(wù)器宕機(jī),則全部的項(xiàng)目業(yè)務(wù)都不能訪問。


1.PNG

二、項(xiàng)目的垂直拆分

概念:將原有項(xiàng)目的模塊系統(tǒng)化(一個(gè)模塊一個(gè)項(xiàng)目),這樣的拆分方式叫垂直拆分。


2.PNG

說(shuō)明:

大型項(xiàng)目將模塊系統(tǒng)化拆分是為了方便系統(tǒng)的開發(fā)和維護(hù),因?yàn)橥ǔ4笮晚?xiàng)目都是由多個(gè)團(tuán)隊(duì)共同開發(fā)的。如果一個(gè)業(yè)務(wù)出現(xiàn)了問題,也不會(huì)對(duì)整個(gè)項(xiàng)目造成太大的影響,實(shí)現(xiàn)了軟件架構(gòu)之間的松耦合。
項(xiàng)目的垂直拆分就是分布式思想的應(yīng)用。

三、Maven的繼承和依賴

  1. 問題分析:

問題一:往常我們開發(fā)都是將所有的業(yè)務(wù)都包含在一個(gè)項(xiàng)目中,這樣我們項(xiàng)目所需要的所有jar包都在一個(gè)項(xiàng)目下進(jìn)行管理。但是如果是多個(gè)項(xiàng)目共同開發(fā),應(yīng)該怎么管理jar包呢?

解決方案:將一些公共的jar包文件進(jìn)行抽取,抽取為一個(gè)單獨(dú)的項(xiàng)目xx-parent.其它的系統(tǒng)只需要繼承這個(gè)項(xiàng)目,就可以獲取對(duì)應(yīng)的jar包文件,這樣方便包文件的管理和升級(jí)。

問題二:大型項(xiàng)目中經(jīng)常會(huì)用到一些工具類,如果每個(gè)項(xiàng)目都單獨(dú)引入工具類會(huì)造成代碼維護(hù)的不方便。

解決方案:可以將工具類進(jìn)行抽取,抽取為單獨(dú)的項(xiàng)目xx-common.如果開發(fā)時(shí)需要用到工具類,只需要將工具類像引用maven的依賴包一樣,引用工具類的jar包文件即可。

面試問題:請(qǐng)簡(jiǎn)述大型項(xiàng)目構(gòu)建的注意事項(xiàng)。

回答:大型項(xiàng)目構(gòu)建時(shí),需要將特定的模塊進(jìn)行系統(tǒng)化.這樣做可以將系統(tǒng)性能大大提升.即使其中一個(gè)項(xiàng)目出現(xiàn)了問題,也不影響其他項(xiàng)目的使用.方便系統(tǒng)的管理和維護(hù).(開發(fā)的耦合性)。但是項(xiàng)目拆分完成之后會(huì)有jar包和工具類的管理性問題.需要再次進(jìn)行抽取.將工具類項(xiàng)目抽取到xx-commons項(xiàng)目中.將jar包文件抽取到xx-parent項(xiàng)目中.這樣便于管理和維護(hù)。

3.png
  1. 繼承的實(shí)現(xiàn):
    步驟一:創(chuàng)建一個(gè)父項(xiàng)目xx-parent,項(xiàng)目的類型需要修改為“pom”. 打開項(xiàng)目的pom.xml文件,然后選擇左下角"Overview"視圖,在"Artifact"那里的"Packaging"打包方式修改為"pom"
4.png

說(shuō)明:該項(xiàng)目作為父項(xiàng)目負(fù)責(zé)管理其它項(xiàng)目公共的一些jar包,需要將其它系統(tǒng)的公共依賴的jar包導(dǎo)入到此項(xiàng)目的pom.xml文件中然后保存即可,等依賴的jar包下載完后只要其它系統(tǒng)項(xiàng)目繼承了該項(xiàng)目就會(huì)自動(dòng)添加該項(xiàng)目中的依賴包。如果其它項(xiàng)目中需要特有的jar包,只需要在自己的pom.xml文件中添加自己的依賴包即可,就像多態(tài)一樣。

步驟:創(chuàng)建一個(gè)工具類項(xiàng)目xx-common,項(xiàng)目的類型為"jar",修改方式同前面修改"pom"項(xiàng)目一樣。然后讓該工具類項(xiàng)目去繼承父項(xiàng)目xx-parent——修改"Overview"視圖中的"Parent"選項(xiàng):

5.png

  1. 依賴的實(shí)現(xiàn):

說(shuō)明:項(xiàng)目的繼承只能是單繼承,即一個(gè)子項(xiàng)目只能繼承一個(gè)父項(xiàng)目,這樣如果有一個(gè)項(xiàng)目既需要繼承父項(xiàng)目的jar包,又需要繼承有工具類的項(xiàng)目該怎么解決。此時(shí)可以讓抽取工具類的項(xiàng)目繼承管理jar包的父項(xiàng)目,然后讓子系統(tǒng)項(xiàng)目去依賴工具類項(xiàng)目,這樣既有父項(xiàng)目的jar包,又能使用工具類項(xiàng)目中的工具類。

步驟:創(chuàng)建子系統(tǒng)項(xiàng)目,然后讓其去依賴工具類項(xiàng)目,配置依賴的視圖是"Dependencies"

6.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,254評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評(píng)論 25 709
  • 只從上次他們咖啡廳見面之后,郭子凡就沒有再見過夏之光了!郭子凡在一直在準(zhǔn)備高三的開學(xué)事宜(復(fù)習(xí)功課,開學(xué)有個(gè)分班考...
    茹仙雪閱讀 284評(píng)論 0 0
  • 排球隊(duì)有個(gè)女孩子,每次來(lái)訓(xùn)練的次數(shù)很少,對(duì)于訓(xùn)練在表面上看來(lái)也遠(yuǎn)沒有那么細(xì)心,但是身高很贊,體型很好,絕對(duì)是適合打...
    白霽姑娘閱讀 787評(píng)論 0 0

友情鏈接更多精彩內(nèi)容