京东网站建设流程和结构图,宿迁做网站公司哪家好,用国外网站 图片做自媒体,公司网站建设阿里云Netflix Archaius提供了一组精巧的功能#xff0c;可将动态属性加载到应用程序中。 这篇博客文章只是我所了解的Archaius范围的文档#xff0c;比我在这里所记录的内容要多得多#xff0c;但这应该提供一个很好的开始#xff1a; 默认行为 考虑一个简单的属性文件#x… Netflix Archaius提供了一组精巧的功能可将动态属性加载到应用程序中。 这篇博客文章只是我所了解的Archaius范围的文档比我在这里所记录的内容要多得多但这应该提供一个很好的开始 默认行为 考虑一个简单的属性文件 stringproppropvalue
listpropvalue1, value2, value3
mappropkey1value1, key2value2
longprop100 如果将这些条目放置在类路径中的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 sampleproppropvalue
nextsample-${environment}.properties sample-test.properties sampleproppropvalue-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