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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Netflix Archaius用于物业管理–基础知识

發布時間:2023/12/3 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Netflix Archaius用于物业管理–基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Netflix Archaius提供了一組精巧的功能,可將動態屬性加載到應用程序中。

這篇博客文章只是我所了解的Archaius范圍的文檔,比我在這里所記錄的內容要多得多,但這應該提供一個很好的開始:

默認行為

考慮一個簡單的屬性文件:

stringprop=propvalue listprop=value1, value2, value3 mapprop=key1=value1, key2=value2 longprop=100

如果將這些條目放置在類路徑中的config.properties文件中,那么以下測試將演示Archaius如何在代碼中解析這些屬性中的每一個:

@Test public void testBasicStringProps() {DynamicStringProperty sampleProp = DynamicPropertyFactory.getInstance().getStringProperty("stringprop", "");assertThat(sampleProp.get(), equalTo("propvalue")); }@Test public void testBasicListProps() {DynamicStringListProperty listProperty = new DynamicStringListProperty("listprop", Collections.emptyList());assertThat(listProperty.get(), contains("value1", "value2", "value3")); }@Test public void testBasicMapProps() {DynamicStringMapProperty mapProperty = new DynamicStringMapProperty("mapprop", Collections.emptyMap());assertThat(mapProperty.getMap(), allOf(hasEntry("key1", "value1"), hasEntry("key2", "value2"))); }@Test public void testBasicLongProperty() {DynamicLongProperty longProp = DynamicPropertyFactory.getInstance().getLongProperty("longprop", 1000);assertThat(longProp.get(), equalTo(100L)); }

從類路徑中的非默認文件加載屬性

因此,現在,我們如何處理要從具有不同名稱的文件中加載內容的情況,例如newconfig.properties,但仍在類路徑中可用。 以下是一種方法:

@Before public void setUp() throws Exception{ConfigurationManager.loadCascadedPropertiesFromResources("newconfig"); }

有了此更改,以前的測試就可以了。

另一個選擇是提供一個系統屬性,以指示要從類路徑加載的屬性文件的名稱:

System.setProperty("archaius.configurationSource.defaultFileName", "newconfig.properties");

覆蓋環境

現在,我們如何覆蓋不同應用程序環境的屬性– Archaius提供了一個簡潔的功能,可以加載基本屬性文件,然后根據上下文對其進行覆蓋。 更多細節在這里 。 為了說明這一點,請考慮兩個文件,一個包含默認值,一個包含“測試”環境的替代文件。

sample.properties

sampleprop=propvalue @next=sample-${@environment}.properties

sample-test.properties

sampleprop=propvalue-test

請參閱默認文件@ next = sample- $ {@ environment} .properties末尾的符號,這是一種向Archaius指示需要根據解析的@environment參數加載更多屬性的方法。 可以通過兩種方式注入此參數,以下測試證明了這一點:

@Before public void setUp() throws Exception{ConfigurationManager.getConfigInstance().setProperty("@environment", "test");ConfigurationManager.loadCascadedPropertiesFromResources("sample"); }@Test public void testBasicStringPropsInTestEnvironment() throws Exception {DynamicStringProperty sampleProp = DynamicPropertyFactory.getInstance().getStringProperty("sampleprop", "");assertThat(sampleProp.get(), equalTo("propvalue-test")); }

現在必須通過調用ConfigurationManager.loadCascadedPropertiesFromResources來加載基本屬性文件本身。 。

結論

這些本質上是Netflix Archaius的基礎知識,當然還有很多可以從Archaius github網站上的Wiki中收集到的。

  • 如果您有興趣探索此處顯示的樣本,請在此github項目中找到它們

翻譯自: https://www.javacodegeeks.com/2015/05/netflix-archaius-for-property-management-basics.html

總結

以上是生活随笔為你收集整理的Netflix Archaius用于物业管理–基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。