Spring Boot -05- 多模塊結構項目構建與測試(詳細圖文教程)IDEA 版
百度很多博客都不詳細,弄了半天才把 Spring Boot 多模塊項目構建開發整的差不多,特地重新創建配置,記錄一下,也分享給有需要的人
本篇也會非常詳細的介紹涉及的基礎知識點,更多都寫在注釋上了
先放成功截圖:
(1)項目結構:
(2)啟動:
(3)測試主子模塊:
(4)測試子模塊依賴:
第一步:創建父模塊,子模塊
(1)打開創建項目窗口,點擊 Create New Project
(2)填寫
(3)填寫
(4)Maven 自動導入
(5)沒有 iml 文件,請重新創建,請看截圖:
(6)在父項目上,右鍵新建模塊
(7)這里用 xpwi-main
(8)填寫
(提示:這個名字建議個上面的一致,不然項目名和文件夾名不一致哈)
(9)依次類推,創建自己需要的子模塊
(10)然后去創建包,示例:
第二步:父 pom.xml 配置
請查看詳細注釋,根據自己的項目修改
注意:
- 子模塊那個是不需要配置的,由創建時自動生成
- dependencyManagement 也在注釋上講解了
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--基本信息-->
<description>Spring Boot 多模塊構建示例</description>
<groupId>com.xpwi</groupId>
<artifactId>first-springboot</artifactId>
<!--父 pom 的 packing 必須為 pom,請核查-->
<packaging>pom</packaging>
<version>1.0.0</version>
<!--指定整個項目的父項目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<!--模塊:這里聲明多個子模塊 -->
<!--注意,這個不用手動自己去寫,因為創建的時候是會自動生成的-->
<modules>
<module>xpwi-test</module>
<module>xpwi-main</module>
<module>xpwi-login</module>
</modules>
<!--屬性變量配置-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--加載依賴管理-->
<!--注意:如果使用dependencyManagement,只是對版本進行管理,不會直接引入jar -->
<!--是為了在這里配置版本,為了讓子模塊pom或者本pom的直接dependencies不單獨配置版本 -->
<!--如果沒有版本,會先到這里找版本號,以免版本沖突 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.5.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--公共模塊加載,非公共模塊請一般放在子pom進行加載-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--插件-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
第三步:子 pom.xml 配置
請查看詳細注釋,根據自己的項目修改
注意:
- 父模塊依賴
- 子模塊與子模塊依賴
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>first-springboot</artifactId>
<groupId>com.xpwi</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xpwi-main</artifactId>
<dependencies>
<!--這個已經移動到父 pom 了-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-web</artifactId>-->
<!--</dependency>-->
<!--現在是去加載自己創建的模塊-->
<!--就是加載子模塊對子模塊的依賴-->
<dependency>
<groupId>com.xpwi</groupId>
<artifactId>xpwi-test</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.xpwi</groupId>
<artifactId>xpwi-login</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
第四步:創建啟動類,本模塊測試類
(1)創建兩個文件
(2)啟動類 App.java 源代碼:
package com.xpwi.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
/**
* 描述:Spring Boot 多模塊測試項目
* @author Xiao Pengwei
* @since 2019-03-25
*/
@SpringBootApplication
@RestController
//掃描 main,test 模塊中的下的所有包
//在 pom 加載子模塊依賴才可以騷包
@ComponentScan({"com.xpwi.main","com.xpwi.test"})
public class App {
public static void main(String[] args) {
//啟動 Web 容器
SpringApplication.run(App.class, args);
System.out.println("[啟動成功]"+new Date());
}
}
(3)MainController.java 文件源代碼:
package com.xpwi.main.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 描述:本模塊測試類
* @author Xiao Pengwei
* @since 2019-03-25
*/
@RestController
@RequestMapping("/main")
public class MainController {
//請求映射,當請求 /main/test 時執行該方法
@RequestMapping("/test")
public String home() {
return "Hello Main!";
}
}
第五步:子模塊依賴測試類
(1)結構:
(2)TestController 文件源代碼:
package com.xpwi.test.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 描述:子模塊依賴測試
* @author Xiao Pengwei
* @since 2019-03-25
*/
@RestController
@RequestMapping("test")
public class TestController {
//請求映射,當請求 /home 時執行該方法
@RequestMapping("/test")
public String home() {
return "Hello Test!";
}
}
第六步:啟動與測試
(1)啟動:
(2)測試主子模塊:
(3)測試子模塊依賴: