netflix_Netflix Archaius用于物业管理–基础知识
netflix
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}.propertiessample-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
總結
以上是生活随笔為你收集整理的netflix_Netflix Archaius用于物业管理–基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 圣域魔都魁影吸血鬼攻略
 - 下一篇: 混沌与秩序电脑按键(混沌与秩序新手攻略)