日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Bootstrap中带有配置元数据的高级配置

發(fā)布時間:2023/12/3 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Bootstrap中带有配置元数据的高级配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在簡要介紹了配置元數(shù)據(jù)并涵蓋了我之前的文章《 在Spring Boot中使用配置元數(shù)據(jù)Pimp您的配置》中的基礎(chǔ)知識之后,是時候看看如何進(jìn)一步執(zhí)行此步驟并進(jìn)一步自定義配置了。 在本文中,我計劃提出對配置屬性的棄用,并討論各種值提供程序,以實(shí)現(xiàn)我所經(jīng)歷過的最舒適的應(yīng)用程序配置之一(在嘗試寫出完整內(nèi)容的同時,在配置中打錯字的時代已經(jīng)過去了。合格的類名或資源路徑–讓我們高興。

棄用財產(chǎn)

在進(jìn)行配置時,一種確定的招致麻煩的方法是引入突然的,無記錄的重大更改,這些更改可能導(dǎo)致應(yīng)用程序初始化或運(yùn)行時失敗。 Spring Boot引入了一個選項來標(biāo)記和記錄要棄用的屬性,以應(yīng)對這種情況。 秉承簡單聲明的精神,一旦準(zhǔn)備好新的(替換)屬性,您需要做的就是將deprecation JSON節(jié)點(diǎn)添加到property additional-spring-configuration-metadata.json文件的property描述中:

棄用財產(chǎn)

... {"name": "my.property","defaultValue": "something","deprecation": {"replacement": "my.new-property","reason": "This property is no longer needed."} } ...

重新編譯項目后,支持此功能的工具將獲取更改并根據(jù)其設(shè)置反映出來。 下圖描繪了可用配置屬性的列表,其中已棄用的屬性已明確標(biāo)記。

如果您已經(jīng)在屬性文件中的某個位置使用了不推薦使用的屬性,則基于您使用的顏色主題和IDE,事情可能會變得有些奇怪。 我喜歡將IDEA與黑曜石主題結(jié)合使用,從而突出顯示以下文本。 本來可以做得更好,但是一旦您習(xí)慣了它,并理解每種顏色代表什么,就沒有問題了。 請記住一些注意事項。

您也可以更深入地了解為什么將此屬性標(biāo)記為不推薦使用。 只需調(diào)用此屬性的文檔(默認(rèn)情況下,通過在IDEA中按CTRL + Q),您將看到類似于此窗口的內(nèi)容,該窗口呈現(xiàn)了我先前在additional-spring-configuration-metadata.json文件中定義additional-spring-configuration-metadata.json 。 該查找適用于所有屬性,并且取決于您的代碼和其他配置元數(shù)據(jù)獲得的詳細(xì)程度和描述性。

鏈接到應(yīng)該替換/替換當(dāng)前屬性的屬性特別有用。 這意味著您可以使用意圖動作(在IDEA中,默認(rèn)情況下通過按ALT + ENTER調(diào)用)并執(zhí)行已淘汰屬性的單次替換。 萬一屬性值可以保持不變,您已經(jīng)做好了一切。 否則,您還需要更新該值。 挺整潔的!

價值提供者

值提供程序僅可用于手動提供的提示(使用文件additional-spring-configuration-metadata.json )。 Spring Boot將它們定義為一種描述屬性潛在值列表的方法,通過關(guān)聯(lián)提供程序以將明確定義的語義附加到屬性,以便工具可以根據(jù)項目的上下文發(fā)現(xiàn)潛在值列表。 這聽起來可能有點(diǎn)含糊,但是它確實(shí)是很酷的功能,它使您可以利用類層次結(jié)構(gòu),資源結(jié)構(gòu)或Spring自己的上下文中的幾乎所有方面。

類參考

讓我們從一個非常簡單但非常實(shí)用的東西開始-類引用提供程序。 如果我想根據(jù)應(yīng)用程序的部署位置來配置應(yīng)在應(yīng)用程序中使用哪種策略,我可以實(shí)施幾種策略實(shí)現(xiàn)并創(chuàng)建一個屬性來捕獲這一部分配置。 我的每個策略都實(shí)現(xiàn)一個IStrategy接口。 通過在hints additional-spring-configuration-metadata.json文件的hints部分中提供一個簡單的提供程序聲明,我可以大大簡化該屬性的填寫。

類引用的例子

...{"name": "my.strategy","providers": [{"name": "class-reference","parameters": {"target": "com.jakubstas.s3downloader.strategy.IStrategy"}}]} ...

更新手動輸入的元數(shù)據(jù)并重新編譯項目后,策略屬性將顯示在可用屬性列表中。 這里沒有新內(nèi)容。

但是,當(dāng)涉及到值選擇時,可用值列表僅限于已定義接口的實(shí)現(xiàn)。 當(dāng)您需要配置要使用的類/實(shí)現(xiàn)或配置的任何其他方面時,這將很有用。

這樣做的好處是,您不必費(fèi)心為每個可用的類提供其他描述,因?yàn)槟匀豢梢允褂梦臋n查找操作(默認(rèn)情況下,在IDEA中按CTRL + Q)。 這使開發(fā)人員可以輕松瀏覽可用的選項,并非常舒適地選擇最適合的選項,而不會費(fèi)力。

處理為

請像處理另一個很酷的提供程序一樣進(jìn)行處理。 它允許您將屬性的類型替換為更高級的類型。 這只是一種幻想的表達(dá)方式,您希望您的IDE將此字符串屬性視為Resource,而不對可能不在類路徑中的任何給定框架類創(chuàng)建顯式依賴。 與先前討論的提供程序相比,此提供程序就像變色龍–它允許自動完成諸如字符集,mime類型,枚舉,語言環(huán)境或資源之類的東西,并且還支持集合的使用。

話雖如此,我們可能希望在我們的應(yīng)用程序中使用不同的條款和條件信息,并且還能夠在每個版本的不同版本之間進(jìn)行切換,而無需發(fā)布整個程序。 我的配置中引入了新屬性來支持此要求。 通過像在此代碼段中那樣在Additional additional-spring-configuration-metadata.json的hints部分中提供一個簡單的提供程序聲明,我將只能瀏覽我的資源并快速導(dǎo)航到要使用的文件。

將屬性作為資源處理

...{"name": "my.terms-and-conditions","providers": [{"name": "handle-as","parameters": {"target": "org.springframework.core.io.Resource"}}]} ...

首先要介紹的是您要使用的資源類型的選擇(是的,它支持資源字符串前綴:))。

我想使用classpath資源,然后導(dǎo)航至文件。 由于您可能想將文件夾本身用作資源,因此需要自己提供文件分隔符。

其他

還有其他一些價值提供者值得一試,我將不像前兩個那樣詳細(xì)討論。 讓我們快速看一下我們還能使用什么:

  • 任何
    • 允許提供任何附加值。
  • 記錄器名稱
    • 自動完成有效的記錄器名稱。
  • Spring Bean參考
    • 自動完成當(dāng)前項目中的可用bean名稱。
  • Spring資料名稱
    • 自動完成項目中可用的Spring概要文件名稱。

有關(guān)更多信息,請參閱附錄B。

結(jié)論

這就是我在Spring Boot中關(guān)于配置元數(shù)據(jù)支持的全部內(nèi)容。 希望這兩篇文章能激發(fā)您對這項功能進(jìn)行自己的研究并嘗試一下。 老實(shí)說,設(shè)置起來并不難,它使您的生活更輕松。 盡管這不是解決應(yīng)用程序配置所有問題的萬能解決方案,但我還是愿意每天使用這種增量改進(jìn)。 您對這種配置方法有何經(jīng)驗(yàn)? 在評論部分讓我知道。

翻譯自: https://www.javacodegeeks.com/2016/02/advanced-config-configuration-meta-data-spring-bootstrap.html

總結(jié)

以上是生活随笔為你收集整理的Spring Bootstrap中带有配置元数据的高级配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。