Spring Boot|多模組
阿新 • • 發佈:2020-12-04
簡單搭了一套多模組的框架,將controller、service、dao等分成不同的模組,可以相互協作又層級間相互解耦。
一、環境搭建
先基於maven建立一個父級框架multimodule
src資料夾可以刪除
在父級multimodule中的pom.xml檔案中加入如下內容,這樣子類就不需要再重複引用了。
multimodule上右鍵新增一個Module,這次我們建立一個spring boot專案,common模組。
修改common層的pom.xml檔案
下面的內容必須從pom中刪除,否則最終打包會報找不到引用模組的錯誤。
使用同樣的方法建立一個dao、service、web層,建立好的結構如下:
層級架構:dao > service > web,common層同時為service、web層提供服務,修改層級間的引用關係,如下:
multimodule層:
web層:
service層:
至此,基礎環境搭建完畢
二、測試打包
建立一個簡單示例,演示執行流程。
common
/** * 測試工具類 * * @author jyy * @since 2020/12/4 16:03 */ @RestController public class DemoUtils { public static void print(String s) { System.out.println(s); } }
dao
/** * 資料庫互動層 * * @author jyy * @since 2020/12/4 16:25 */ @Repository public class DemoDao { public void test() { System.out.print("hello dao"); } }
service
/** * 邏輯層 * @author jyy * @since 2020/12/4 16:27 */ @Service public class DemoService { @Resource private DemoDao demoDao;public void test() { DemoUtils.print("hello service"); demoDao.test(); } }
web
/** * 檢視層 * * @author jyy * @since 2020/12/4 16:29 */ @RestController public class DemoController { @Resource private DemoService demoService; @GetMapping("test") public void test() { DemoUtils.print("hello controller"); demoService.test(); } }
執行web層,呼叫test方法,執行結果如下:
整個專案,可以每層分別打包,也可以整體打包,在multimodule層打包,涉及到的各個模組都會重新打包一遍。