【Spring Boot】Maven中引入 springboot 相关依赖的方式

文章目录

  • [Maven中引入 springboot 相关依赖的方式](#Maven中引入 springboot 相关依赖的方式)
    • [1. 不使用版本管理(不推荐)](#1. 不使用版本管理(不推荐))
    • 2、使用版本管理(推荐)
      • [2.1 继承 spring-boot-starter-parent](#2.1 继承 spring-boot-starter-parent)
      • [2.2 使用 spring-boot-dependencies + 自定义父工程](#2.2 使用 spring-boot-dependencies + 自定义父工程)
      • [2.3引入 spring-framework-bom](#2.3引入 spring-framework-bom)

Maven中引入 springboot 相关依赖的方式

1. 不使用版本管理(不推荐)

如果项目中没有统一版本管理,那么每个依赖都必须显式声明 <version>

示例:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.7.4</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <version>2.7.4</version>
</dependency>

⚡ 缺点: 手动指定,容易出错,不推荐。

2、使用版本管理(推荐)

2.1 继承 spring-boot-starter-parent

在 pom.xml 中直接继承:

xml 复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.4</version>
</parent>

然后添加依赖时,无需再写<version>

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.2 使用 spring-boot-dependencies + 自定义父工程

如果因为公司项目有自定义父 POM,又想用 Spring Boot 的统一版本管理,可以在 <dependencyManagement> 中导入:

xml 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.7.4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后添加依赖时,同样无需再写<version>

2.3引入 spring-framework-bom

有时候,项目需要单独控制 Spring Framework 的各模块版本,比如在某些 JDK8 项目中,想让 Spring Framework 尽可能用最新兼容版本,这时候可以引入 spring-framework-bom,专门管理 Spring Framework 的依赖版本。

示例:

xml 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>${spring.framework.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后就可以像下面这样引入 Spring Framework 的具体模块而不用单独写版本:

xml 复制代码
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
</dependency>

⚡ 注意:

  • spring-framework-bom 只管理 Spring Framework 本身(如 spring-core、spring-web、spring-context),不包括 Spring Boot 的 starter 或其他自动配置模块。
  • spring-boot-dependencies不仅管自己家的东西(上述 Spring Framework 本身),还顺便帮你管好了外部合作伙伴,比如:Jackson、Tomcat、MySQL 驱动、Redis 客户端等。
相关推荐
泯泷11 分钟前
「译」为 Rust 及所有语言优化 WebAssembly
前端·后端·rust
梦想很大很大1 小时前
把业务逻辑写进数据库中:老办法的新思路(以 PostgreSQL 为例)
前端·后端·架构
Android洋芋1 小时前
GitHub开源协作实践:HelloGitHub项目详解与企业级应用实战
后端
雨果talk2 小时前
Spring Boot集成Mina的Socket资源管理:从稳定通信到高性能优化
spring boot·后端·性能优化
雨果talk2 小时前
【一文看懂多模块Bean初始化难题】Spring Boot多模块项目中的Bean初始化难题:包名不一致的优雅解决方案
java·spring boot·后端·spring·springboot
ZHOU_WUYI3 小时前
flask JWT 认证
后端·flask·jwt
小奏技术3 小时前
Jason Evans:jemalloc的开源20年回忆录
后端·开源
程序员爱钓鱼3 小时前
Go语言同步原语与数据竞争:数据竞争的检测工具
后端·google·go
汪子熙4 小时前
编写一个 Word Macro,调用 DeepSeek API
后端
ifanatic4 小时前
[每周一更]-(第144期):Go 定时任务的使用:从基础到进阶
开发语言·后端·golang