知識庫 / Spring / Spring Boot RSS 訂閱

多模塊項目與 Spring Boot

Maven,Spring Boot
HongKong
4
02:00 PM · Dec 06 ,2025

1. 概述

本快速教程將演示如何使用 Spring Boot 創建一個多模塊項目。

首先,我們將構建一個既不是應用程序本身的庫 JAR 包,然後我們將構建一個使用我們庫的應用程序。

有關 Spring Boot 的介紹,請參閲這篇文章。

2. 設置

要設置我們的多模塊項目,我們首先需要創建一個簡單的模塊,使用POM打包來聚合我們的庫和應用程序模塊,並在我們的 Maven 配置中完成:

<groupId>com.baeldung</groupId>
<artifactId>parent-multi-module</artifactId>
<packaging>pom</packaging>

我們將在我們的項目中創建兩個目錄,將應用程序模塊與庫 jar模塊分隔開來。

讓我們在 pom.xml中聲明我們的模塊:

<modules>
    <module>library</module>
    <module>application</module>
</modules>

3. 庫 JAR

對於我們的 模塊,我們將使用 JAR打包:

<groupId>com.baledung.example</groupId>
<artifactId>library</artifactId>
<packaging>jar</packaging>

為了充分利用 Spring Boot 的依賴管理功能,我們將使用 spring-boot-starter-parent 作為父項目,並確保 設置 <relativePath/> 為空值,以便 Maven 從倉庫中解析父項目的 pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.5</version>
    <relativePath/>
</parent>

請注意,如果我們的項目中已經存在父項目,我們可以將依賴管理作為物料清單 (BOM) 導入,在 <dependencyManagement/> 章節的 pom.xml 中:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <type>pom</type>
            <version>3.1.5</version>
            <scope>import</scope>
        </dependency>
    </dependencies>
<dependencyManagement>

最後,初始依賴將會相當簡單:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

在本項目中,Spring Boot插件是不必要的,因為它的主要功能是創建可執行的über-jar,而我們並不需要或想要將其用於庫中。

之後,我們就可以開始開發一個服務組件,該組件將由該庫提供

@Service
public class EvenOddService {

    public String isEvenOrOdd(Integer number) {
        return number % 2 == 0 ? "Even" : "Odd";
    }
}

4. 應用項目

與我們的 模塊一樣,我們的應用程序模塊也將使用 JAR打包:

<groupId>com.baeldung.example</groupId>
<artifactId>application</artifactId>
<packaging>jar</packaging>

我們將會繼續利用 Spring Boot 的依賴管理功能:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.1.5</version>
    <relativePath/>
</parent>

除了 Spring Boot starter 依賴項,我們還將包含之前章節中創建的我們的庫的 jar 包:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baeldung.example</groupId>
        <artifactId>library</artifactId>
        <version>${project.version}</version>
    </dependency>
</dependencies>

最後,我們將使用 Spring Boot插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

使用上述插件在這裏有幾個方便的原因。

首先,它提供了一個內置的依賴關係解析器,將版本號設置為與 Spring Boot 依賴項匹配。

其次,它會搜索主方法,將其標記為可運行的類。

最後,也許最重要的是,它會收集所有在 classpath 上的 jars,並構建一個單一的、可運行的 über-jar

現在一切都準備好了,我們可以編寫應用程序類並直接進入主題,讓我們 在主應用程序類中實現一個控制器

@SpringBootApplication(scanBasePackages = "com.baeldung")
@RestController
public class EvenOddApplication {

    private EvenOddService evenOddService;

    // constructor

    @GetMapping("/validate/")
    public String isEvenOrOdd(
      @RequestParam("number") Integer number) {
        return evenOddService.isEvenOrOdd(number);
    }

    public static void main(String[] args) {
        SpringApplication.run(EvenOddApplication.class, args);
    }
}

5. 結論

本文介紹瞭如何實施和配置多模塊項目,並使用 Spring Boot 構建獨立的庫文件 JAR 包。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.