天天看點

springboot源碼分析1-springboot版本号擷取 1.java中定義項目的版本 2.springboot中版本資訊 3.springboot中版本資訊的擷取工具類 4.擴充點

摘要:在使用springboot的時候,可能經常會忽略掉springboot的版本問題。本文我們看一下springboot jar包中定義的版本資訊以及版本擷取類。本文内容相對而言比較簡單。

回想一下在java中如何定義項目的版本。這個比較簡單,隻需要在jar包增加MANIFEST.MF檔案(根目錄)并添加的如下内容即可:

Manifest-Version: 1.0

Implementation-Title: 分享牛

Implementation-Version: 1.1

關于MANIFEST.MF檔案的位置如下所示:

同樣,在springboot中spring-boot-2.0.0.M3.jar包中MANIFEST.MF定義了相關的版本資訊,具體内容如下所示:

了解了上述的版本定義之後,我們就開始說明如何進行MANIFEST.MF中定義的版本資訊值的擷取,可能聰明的小夥伴就想到了,直接讀取MANIFEST.MF檔案

并解析Implementation-Version屬性不就可以了,當然可以使用這種方式,但是我們可以直接利用Springboot架構本身提供的一些的類進行操作了,這個類就是

SpringBootVersion類,該類的定義如下所示:

當我們需要擷取springboot中的版本,隻需要調用SpringBootVersion類即可。

注意:SpringBootVersion類修飾符是final,是以我們不能定義子類去繼承該類。

SpringBootVersion類位于spring-boot-2.0.0.M3.jar包中,并且版本資訊檔案MANIFEST.MF位于spring-boot-2.0.0.M3.jar包中,那是不是我們就可以通過

spring-boot-2.0.0.M3.jar包中的任意一個類去擷取版本資訊呢?答案是肯定的。當然可以擷取到的。執行個體代碼如下:

上述代碼中,我們分别通過了SpringBootVersion類以及SpringApplication類進行版本資訊的擷取。運作上述的代碼,控制台輸出的資訊如下:

2.0.0.M3