【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 客户端等。
相关推荐
Gse0a362g6 分钟前
Go - Zerolog使用入门
开发语言·后端·golang
Renhao-Wan20 分钟前
Docker 核心原理详解:镜像、容器、Namespace、Cgroups 与 UnionFS
java·后端·docker·容器
drbinzhao44 分钟前
maven 国内源
maven
EFCY1MJ901 小时前
ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例
后端·asp.net·mvc
小江的记录本1 小时前
【RabbitMQ】RabbitMQ核心知识体系全解(5大核心模块:Exchange类型、消息确认机制、死信队列、延迟队列、镜像队列)
java·前端·分布式·后端·spring·rabbitmq·mvc
蜜獾云1 小时前
Maven项目引入本地JAR包的三种正确方式对比
python·maven·jar
小江的记录本2 小时前
【RocketMQ】RocketMQ核心知识体系全解(5大核心模块:架构模型、事务消息两阶段提交、回查机制、延迟消息、顺序消息)
linux·运维·服务器·前端·后端·架构·rocketmq
却话巴山夜雨时i2 小时前
Java大厂面试:从Spring Boot到微服务的深度剖析
java·spring boot·spring cloud·微服务·分布式事务·大厂面试
希望永不加班2 小时前
SpringBoot 缓存注解:@Cacheable/@CacheEvict 使用
java·spring boot·spring·缓存·mybatis
源码站~2 小时前
基于Spring Boot+Vue3的烹饪交流学习系统 设计与实现
java·vue.js·spring boot·后端·mysql·毕业设计·毕设