查看原文
其他

最近log4j2的核弹级漏洞席卷了大部分互联网公司,升级版本成了这两周的核心任务。对于要升级到什么版本,最新版本2.16.0是最佳选择。那么如何快速升级,之前也给出了Spring Boot项目升级版本的最简方法
大家只需要使用这样的简单配置,就可以把log4j2一系列包的版本都升级了。

如果这种方法不行,注意加了配置之后要reload下。另外,如果你不是Spring Boot项目,或者是通过其他方式引入的log4j2,那么需要单独处理,或者在你项目的根依赖里,直接写上log4j2的依赖并设置版本为2.16.0,强制覆盖其他地方引入的版本。如果您正在学习Spring Boot,那么推荐一个连载多年还在继续更新的免费教程:https://blog.didispace.com/spring-boot-learning-2x/
上面的配置很简单,但还是有读者不清楚为什么这样就可以了:
所以,今天就具体给大家说一下这个配置的原理。

一步步了解为什么

下面我会以读代码寻找源头的方式,带你一步步了解这个配置。希望你通过本文除了知道这个问题是为什么,还能学会这种自己探究问题的方法。
第一步:观察下你的pom.xml,有没有发现很多依赖包括非Spring Boot Starter的依赖都没有写version?
既然没version也能跑,那一定有地方定义了!把焦点转移到parent上,似乎就这里有version!
第二步:进一步查看spring-boot-starter-parent的内容
进入后可以看到类似下面的xml配置,其中主要包含的内容是与build相关的,而非依赖信息。
第三步:继续观察spring-boot-starter-parent中的信息中,可以看到,它还有一个parent,好小子藏那么深!那么就继续深入查看spring-boot-dependencies的内容:
进入后,我们就可以看到重点了,该Spring Boot版本下各个组件的版本参数就在这里:
搜索log4j2,可以发现,这个版本下默认使用的是2.14.1
继续往下搜,在dependencyManagement节点下,可以看到各个依赖的版本定义就是引用了上面配置的各个properties
所以,当我们在自己的Spring Boot中配置对应的properties,就可以覆盖parent中的properties,并实现版本的更新。
好了,今天的小知识你Get到了吗?

其实本身也不是特别难的东西,在Spring Boot文档里也都有提及。可能还是很多小伙伴对于技术知识的学习不够系统化,碎片学习的内容还是居多,一些细枝末节的东西就都给遗漏了。

DD这里顺手给大家一波极具含金量的学习资料,里面涵盖了10个热门技术领域、300+项学习资源。这些内容均来自于阿里淘系技术的50余位工程师,与实战密切关联,非常适合已经入门,想要进一步提升的小伙伴!

具体有些什么内容呢?可以看看下面这份知识地图

封面及部分内页展示 (左滑)


  如何下载?

  温馨提示

  1. 地图小册目录均可实现标题跳转,感兴趣的内容点击标题即可一键传输。

  2. 本书下载无需注册和登录账号,获取链接即可下载

  3. 小册大小共计 1.5M , 轻巧方便,手机党均可放心下载~ 

点赞、在看、分享鼓励一下,年终奖翻倍

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存