知識庫 / Spring RSS 訂閱

Spring Maven 教程

Maven,Spring
HongKong
4
03:12 PM · Dec 06 ,2025

目錄

  1. 概述
  2. 使用 Maven 構建基本 Spring 依賴
  3. Spring 持久層依賴與 Maven
  4. Spring MVC 依賴與 Maven
  5. Spring Security 依賴與 Maven
  6. Spring Test 依賴與 Maven
  7. 使用里程碑版本
  8. 使用快照版本
  9. 結論

1. 概述

本教程演示瞭如何通過 Maven 設置 Spring 依賴。最新版本的 Spring 可以從 Maven Central 下載。

2. 使用 Maven 的基本 Spring 依賴項

Spring 設計為高度模塊化——使用 Spring 的一部分不應並且不要求使用其他部分。例如,基本的 Spring Context 可以不使用 Persistence 或 MVC Spring 庫。

讓我們從一個基本的 Maven 設置開始,它只會使用 spring-context 依賴項。

<properties>
    <org.springframework.version>5.2.8.RELEASE</org.springframework.version>
</properties>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${org.springframework.version}</version>
    <scope>runtime</scope>
</dependency>

這個依賴項——spring-context——定義了實際的 Spring 注入容器,並且具有少量依賴項:spring-core, spring-expression, spring-aop, 和 spring-beans。它們通過啓用對一些 核心 Spring 技術 的支持,增強了容器:核心 Spring 工具、Spring 表達式語言 (SpEL)、面向切面編程 支持 以及 JavaBeans 機制。

請注意,我們定義了依賴項的範圍為 運行時 範圍——這可以確保沒有編譯時依賴於任何 Spring 特定 API。對於更高級的用例,可以選擇性地從某些 Spring 依賴項中移除 運行時 範圍,但對於更簡單的項目,無需編譯以充分利用框架。

此外,請注意 JDK 8 是 Spring 5.2 的最低 Java 版本要求。它還支持 JDK 11 作為當前的 LTS 分支,以及 JDK 13 作為最新的 OpenJDK 發佈版本。

3. 使用 Maven 進行 Spring 持久性

現在,讓我們來探討 Spring 持久性依賴項 – 主要為 spring-orm

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${org.springframework.version}</version>
</dependency>

此功能集包含 Hibernate 和 JPA 支持,例如 HibernateTemplateJpaTemplate,以及一些額外的與持久化相關的依賴項:spring-jdbcspring-tx

JDBC 數據訪問庫定義了 Spring JDBC 支持,以及 JdbcTemplate,而 spring-tx 則代表了極其靈活的 事務管理抽象

4. 使用 Spring MVC 與 Maven

為了使用 Spring Web 和 Servlet 支持,需要將以下兩個依賴項包含在 pom 中,此外還需要包含上述核心依賴項:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${org.springframework.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${org.springframework.version}</version>
</dependency>

spring-web 依賴包含針對 Servlet 和 Portlet 環境的常見 Web 特定實用工具,而 spring-webmvc 則為 Servlet 環境啓用 MVC 支持。

由於 spring-webmvc 依賴於 spring-web ,因此在使用 spring-webmvc 時,顯式定義 spring-web 是不必要的。

從 Spring 5.0 開始,為了支持反應式 Web 框架,我們可以添加對 Spring WebFlux 的依賴。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webflux</artifactId>
    <version>${org.springframework.version}</version>
</dependency>

5. 使用 Maven 進行 Spring 安全

在“使用 Maven 進行 Spring 安全”文章中,深入探討了 Maven 安全依賴項

6. 使用 Maven 進行 Spring 測試

可以通過以下依賴項將 Spring 測試框架包含到項目中:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${spring.version}</version>
    <scope>test</scope>
</dependency>

使用 Spring 5,我們可以執行併發測試。

7. 使用里程碑版本

Spring 的里程碑版本託管在 Maven Central 上。但是,如果一個項目需要使用里程碑版本,則需要在 pom 中添加一個自定義的 Spring 倉庫:

<repositories>
    <repository>
        <id>repository.springframework.maven.milestone</id>
        <name>Spring Framework Maven Milestone Repository</name>
        <url>http://repo.spring.io/milestone/</url>
    </repository>
</repositories>

一旦該倉庫被定義好,項目就可以定義諸如以下依賴關係:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.0-M1</version>
</dependency>

8. 使用快照

類似於里程碑,快照也存儲在自定義倉庫中:

<repositories>
    <repository>
        <id>repository.springframework.maven.snapshot</id>
        <name>Spring Framework Maven Snapshot Repository</name>
        <url>http://repo.spring.io/snapshot/</url>
    </repository>
</repositories>

一旦在 pom.xml 中啓用 SNAPSHOT 倉庫,就可以引用以下依賴項:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>

作為 5.x 的一部分,還包括:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.0-SNAPSHOT</version>
</dependency>

9. 結論

本文討論了使用 Spring 與 Maven 的實際細節。此處提供的 Maven 依賴項當然是其中一些主要依賴項,但還有其他一些依賴項值得一提,目前尚未被納入其中。然而,這仍然是一個良好的起點,可以用於在項目中應用 Spring。

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

發佈 評論

Some HTML is okay.