碼農(nóng)架構(gòu) | SpringBoot 元數(shù)據(jù)配置拓展實(shí)踐

Spring Boot jar 包含元數(shù)據(jù)文件实檀,提供所有支持的配置屬性的詳細(xì)信息腰根。該文件旨在讓 IDE 開發(fā)者提供上下文相關(guān)的幫助和“代碼完成”家凯。總結(jié)本篇文章希望對從事相關(guān)工作的同學(xué)能夠有所幫助或者啟發(fā)该默。

一、背景


最近在調(diào)試reactive-steams源碼的時候看到spring-boot源碼包里面的

  • spring-configuration-metadata.json

  • additional-spring-configuration-metadata.json

碼農(nóng)架構(gòu)-出品

說實(shí)話主要是metadata吸引了我策彤,因?yàn)樽罱谡{(diào)整引擎元數(shù)據(jù)管理確實(shí)折騰了很久栓袖。

查了官方的資料發(fā)現(xiàn)這里也是 SpringBoot 提供的元數(shù)據(jù)配置拓展匣摘,但是這里的元數(shù)據(jù)不是只在 Spring bean 管理的元數(shù)據(jù)類似。

? 官方解釋

碼農(nóng)架構(gòu)-出品

訪問地址:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-additional-metadata

簡單點(diǎn)可以理解為這類元數(shù)據(jù)的配置時為了讓我們在使用 IDEA 開發(fā)的過程中裹刮,使用application.properties或者 application.yml配置的時候更有注釋說明音榜,更方便我們開發(fā)使用。

? 官方案例

以我們常用的 logging 配置為例

  • 元數(shù)據(jù)配置
碼農(nóng)架構(gòu)-出品
碼農(nóng)架構(gòu)-出品
  • 定義配置
碼農(nóng)架構(gòu)-出品

二捧弃、應(yīng)用實(shí)例


? 插件工廠配置定義

配置元數(shù)據(jù)文件位于 jar 下面赠叼。META-INF/spring-configuration-metadata.json它們使用簡單的 JSON 格式,其中的項(xiàng)目分類在“groups”或“properties”下

碼農(nóng)架構(gòu)-出品
{
    "properties": [
        {
            "name": "plugin-cache.basePackage",
            "type": "java.lang.String",
            "description": "文檔掃描包路徑违霞。"
        },
        {
            "name": "plugin-cache.title",
            "type": "java.lang.String",
            "description": "Plugin Cache 插件工廠"
        },
        {
            "name": "plugin-cache.description",
            "type": "java.lang.String",
            "description": "插件工廠描述"
        },
        {
            "name": "plugin-cache.version",
            "type": "java.lang.String",
            "defaultValue": "V1.0",
            "description": "版本嘴办。"
        }
    ]
}

復(fù)制代碼

大部分元數(shù)據(jù)文件是在編譯時通過處理所有帶注釋的項(xiàng)目自動生成的

@ConfigurationProperties 可以查看先前的文章

@EnableConfigurationProperties 的工作原理

參考下面 properties 表格進(jìn)行配置上的理解。

碼農(nóng)架構(gòu)-出品

deprecation 每個 properties 元素的屬性中包含的 JSON 對象可以包含以下屬性:

碼農(nóng)架構(gòu)-出品

? 插件工廠配置注入

@Data
@Component
@ConfigurationProperties(PluginCacheProperties.PREFIX)
class PluginCacheProperties {

    public static final String PREFIX = "plugin-cache";

    /**
     * 文檔掃描包路徑
     */
    private String basePackage = "";

    /**
     * Plugin Cache 插件工廠
     */
    private String title = "Plugin Cache 插件工廠";

    /**
     * 服務(wù)文件介紹
     */
    private String description = "插件緩存說明";

    /**
     * 版本
     */
    private String version = "V1.0";

    /**
     * 默認(rèn)編碼
     */
    private String charset="UTF-8";

}

復(fù)制代碼

? 配置應(yīng)用

碼農(nóng)架構(gòu)-出品
碼農(nóng)架構(gòu)-出品

三葛家、總結(jié)


對于元數(shù)據(jù)配置户辞,理解起來不難!主要為了組件庫為了讓使用者更加優(yōu)化使用提供的一套 IDEA 提示說明癞谒。借此我們在開放私有組件或者插件的時候在對于配置項(xiàng)可對外提供開放能力底燎,可以根據(jù)元數(shù)據(jù)配置來完善 IDEA 提示說明。這樣其他人用起來的時候能很快知道對應(yīng)的參數(shù)的配置類型以及相關(guān)的配置屬性說明弹砚∷裕總結(jié)本篇文章希望對從事相關(guān)工作的同學(xué)能夠有所幫助或者啟發(fā)

往期推薦

公眾號:碼農(nóng)架構(gòu).png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茅诱,一起剝皮案震驚了整個濱河市逗物,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瑟俭,老刑警劉巖翎卓,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摆寄,居然都是意外死亡失暴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門微饥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逗扒,“玉大人,你說我怎么就攤上這事欠橘【丶纾” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵简软,是天一觀的道長蛮拔。 經(jīng)常有香客問我述暂,道長,這世上最難降的妖魔是什么建炫? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任畦韭,我火速辦了婚禮,結(jié)果婚禮上肛跌,老公的妹妹穿的比我還像新娘艺配。我一直安慰自己,他們只是感情好衍慎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布转唉。 她就那樣靜靜地躺著,像睡著了一般稳捆。 火紅的嫁衣襯著肌膚如雪赠法。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天乔夯,我揣著相機(jī)與錄音砖织,去河邊找鬼。 笑死末荐,一個胖子當(dāng)著我的面吹牛侧纯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甲脏,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼眶熬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了块请?” 一聲冷哼從身側(cè)響起娜氏,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墩新,沒想到半個月后牍白,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抖棘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狸涌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片切省。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖帕胆,靈堂內(nèi)的尸體忽然破棺而出朝捆,到底是詐尸還是另有隱情,我是刑警寧澤懒豹,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布芙盘,位于F島的核電站驯用,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏儒老。R本人自食惡果不足惜蝴乔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驮樊。 院中可真熱鬧薇正,春花似錦、人聲如沸囚衔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽练湿。三九已至猴仑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肥哎,已是汗流浹背辽俗。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贤姆,地道東北人榆苞。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像霞捡,于是被迫代替她去往敵國和親坐漏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容