為什么加上 配置就可以更新log4j2的版本?


最近log4j2的核彈級漏洞席卷了大部分互聯網公司,升級版本成了這兩周的核心任務。對於要升級到什么版本,最新版本2.16.0是最佳選擇。那么如何快速升級,之前也給出了Spring Boot項目升級版本的最簡方法

大家只需要使用這樣的簡單配置,就可以把log4j2一系列包的版本都升級了。

如果這種方法不行,注意加了配置之后要reload下。另外,如果你不是Spring Boot項目,或者是通過其他方式引入的log4j2,那么需要單獨處理,或者在你項目的根依賴里,直接寫上log4j2的依賴並設置版本為2.16.0,強制覆蓋其他地方引入的版本。與優秀的人在一起,自己也會慢慢優秀起來!歡迎加入高質量技術交流群

上面的配置很簡單,但還是有讀者不清楚為什么這樣就可以了:

所以,今天就具體給大家說一下這個配置的原理。

一步步了解為什么

下面我會以讀代碼尋找源頭的方式,帶你一步步了解這個配置。希望你通過本文除了知道這個問題是為什么,還能學會這種自己探究問題的方法。

第一步:觀察下你的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技術交流群,與優秀的人在一起,自己也會慢慢優秀起來!更多Spring Boot教程可以點擊直達!,歡迎收藏與轉發支持!

歡迎關注我的公眾號:程序猿DD,分享外面看不到的干貨與思考!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM