替换spring-boot中的组件版本

devtools/2024/9/25 2:21:03/

spring-boot是一个用于简化开发的框架,引入spring-boot后会自动包含spring框架,通过引入xxx-start来完成指定组件的功能。比如:

  • spring-boot-starter-web(嵌入 Tomcat 和 web 开发需要的 servlet 和 jsp 支持)
  • spring-boot-starter-data-jpa(数据库支持)
  • spring-boot-starter-data-Redis(Redis 支持)
  • spring-boot-starter-data-solr(solr 搜索应用框架支持)
  • mybatis-spring-boot-starter(第三方 mybatis 集成 starter)

在使用spring-boot搭建应用时,引入了spring-boot-starter-parent后,为什么在pom.xml中加入其他依赖时通常不需要指定version?

此外,在spring-boot应用中,有时要修复某个组件的漏洞,需要指定组件的具体版本,这个该如何做呢?

以上两个疑问,底层逻辑是一样的。首先看下,spring-boot是在哪里指定了依赖的version?

在pom.xml中,我们将焦点放到了spring-boot-starter-parent本身上,

进去以后内容如下:

 

可以看到主要是build相关的信息,在最上面发现还有一个parent(spring-boot-dependencies),继续cmd+左键点击进去:

在这里有各种以来的版本定义。继续往下搜,在dependencyManagement节点下,引入了各种依赖:

在maven中dependencyManagement往往用在父项目中,管理统一(公共)的依赖,这样在子项目中可以使用dependency有选择性的继承。所以在我们项目的pom中可以不用指定version直接继承父pom.xml中的依赖了。

到这里其实已经解答了我们上面的两个疑问。如果要指定版本,我们只需要在项目的pom.xml中通过property配置对应的版本即可。例如:

<properties><commons-codec.version>1.11</commons-codec.version>
</properties>

 注:更改依赖的版本,可能会遇到兼容性问题。

 


http://www.ppmy.cn/devtools/38981.html

相关文章

17、Flink 的 Checkpointing 配置详解

Checkpointing 1.概述 Flink 中的每个方法或算子都能够是有状态的&#xff0c;状态化的方法在处理单个 元素/事件 的时候存储数据&#xff0c;为了让状态容错&#xff0c;Flink 需要为状态添加 checkpoint&#xff08;检查点&#xff09;。 2.开启与配置 Checkpoint 默认 c…

最简单的自动化爬虫工具--Playwright

Playwright Playwright是一款强大的自动化库&#xff0c;提供了一种简便易用、高性能的网页自动化解决方案。它支持同步和异步两种操作方式&#xff0c;用户无需为不同浏览器单独下载驱动程序&#xff0c;因为Playwright内置了对Chrome、Firefox、Safari等多种浏览器的支持。此…

等保测评—Linux-CentOS标准范例截图

密码输入错误无法登录 用户账户情况包含root、guanli、shenji 查看审计用户权限 身份鉴别&#xff1a; cat /etc/passwd&#xff0c;核查用户名和 UID&#xff0c;是否存在同样的用户名和 UID cat /etc/shadow&#xff0c;查看文件中各用户名状态 &#xff0c; 核查密码一栏为…

搜索算法系列之三(插值查找)

前言 插值查找仅适用于有序数据、有序数组&#xff0c;和二分查找类似&#xff0c;更讲究数据有序均匀分布。 算法原理 插值查找(interpolation search)是一种查找算法&#xff0c;它与二分查找类似&#xff0c;但在寻找元素时更加智能化。这种算法假设数据集是等距的或者有…

用 C 语言进行大模型推理:探索 llama2.c 仓库(二)

文章目录 前提如何构建一个Transformer Model模型定义模型初始化 如何构建tokenzier 和 sampler如何进行推理总结 前提 上一节我们介绍了llama2.c中如何对hugging face的权重进行处理&#xff0c;拿到了llama2.c想要的权重格式和tokenizer.bin格式。这一节我们分析下在llama2.…

华为eNSP学习—IP编址

IP编址 IP编址子网划分例题展示第一步:机房1的子网划分第二步:机房2的子网划分第三步:机房3的子网划分IP编址 明确:IPv4地址长度32bit,点分十进制的形式 ip地址构成=网络位+主机位 子网掩码区分网络位和主机位 学此篇基础: ①学会十进制与二进制转换 ②学会区分网络位和…

elementUi中的el-table合计行添加点击事件

elementUi 文档中&#xff0c;合计行并没有点击事件&#xff0c;这里自己实现了合计行的点击事件。 created() {this.propertyList [{ property: order, label: 序号 },{ property: deptName, label: 单位名称 },{ property: contentPublishQuantity, label: 文章数量 },{ pro…

Nanopc T4 使用OpenCV

识别长方形&#xff1a; import cv2 import cv2 as cv import time import platform import os# 获取操作系统类型 os_type platform.system() if os_type "Windows":# Windows系统cap cv.VideoCapture(0) # 使用第零个摄像头 elif os_type "Linux"…