一、傳統(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ù)都不能訪問。
二、項(xiàng)目的垂直拆分
概念:將原有項(xiàng)目的模塊系統(tǒng)化(一個(gè)模塊一個(gè)項(xiàng)目),這樣的拆分方式叫垂直拆分。
說(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的繼承和依賴
- 問題分析:
問題一:往常我們開發(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ù)。

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

說(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):

- 依賴的實(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"
