1. 程式人生 > 實用技巧 >Spring Boot|多模組

Spring Boot|多模組

簡單搭了一套多模組的框架,將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層打包,涉及到的各個模組都會重新打包一遍。