一、專案結構
multi-module-parent是主工程,裡面包含兩個模組(Module):
module-web是應用層,用於介面展示,依賴於module-core參的服務。 module-core層是服務層,用於給web層提供服務。
以上兩種方式都可以,現在更多的應該是傾向第一種按照功能來解耦,module前期可以配置成jar,後期也可以建立獨有的頁面,獨立的站點,通過子域名的方式訪問,各個功能模組解耦,趨向微服務架構跟java的package類似,一般是按照的功能模組分module,比如:sso/cas/portal/activity/system,具體可根據需要
二、構建專案
2.1 Parent Project
新建一個空白標準maven project(不要選擇Create from archetype選項)
填寫專案座標,得到一個標準的maven專案,因為該專案是作為一個Parent project存在的,可以直接刪除src資料夾(父檔案下只有自己的pom檔案和模組檔案)。2.2 增加module-web模組(Module)
選擇從archetype建立(選擇webapp選項)
groupId和version繼承自Parent project,這裡只需要填寫artifactId即可。注意:這裡Add as module to 有的人會刪除,如果刪除了建立的模組檔案就會和父模組(parent)同級了,這裡看個人喜歡。資料夾結構怎麼樣都行,重要的pom檔案裡面的父子結構要設定正確。
2.3增加module-core模組
用同樣的方法建立module-core模組(不過該模組是一個空白maven標準專案,不要從archetype建立)
2.4 得最終專案結構
2.5 關鍵幾點
1,Parent project和各個Module擁有獨立pom檔案 2,Parent project用於組織不同的Module,不實現邏輯 3,Module整合Parent project的groupId和version,Module只需要指定自己的artifactId即可。
三、新增專案依賴
上面的操作是新增web對core模組的依賴,完成上述操作後core中public的類已經在web模組中可見了,如果不加模組依賴,web下的jsp用不了core裡面的方法,會抱錯:此外還需要在web的pom檔案中增加對core的依賴,這個主要是為了web裡面的Java模組呼叫core的服務:
以上,專案依賴的新增已經完成。四、開始程式設計
4.1 module-core模組程式設計
在core模組中增加一個Service類(SimpleService.java):
4.2 module-web模組程式設計
修改web下的jsp檔案,呼叫core服務: