我是 Netflix archaius 的新手。我有一个代码片段,它读取 Java 属性文件并打印属性值。
当这个程序运行时,它会从 testproperty.properties 文件中打印名为“Fields”的属性的值。现在,当这个程序运行时,我正在更新“字段”属性的值,所以 archaius 应该动态地获取更改值。但它仍在打印旧值。
在这个 Java 程序中使用 archaius 的正确方法是什么?或者在不重新启动程序的情况下更新程序中的属性?如果有人可以在此代码段中指出更正,那将很有帮助。
我想用 Netflix archaius 运行一个演示,所以我在我的项目中通过 maven 导入了 archaius。
现在我正在更新我的属性文件。但它仍然打印旧的属性值。(PS:我在驱动程序中保持了连续的while循环,以查看archaius是否选择了更新属性值运行时。我想这就是archaius应该做的。在不重新启动应用程序的情况下获取更新的属性。如果我错了,请纠正我。)
下面是我的代码片段:
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.config.DynamicStringProperty;
public class PropertyChangetest {
public static void main(String args[]) {
DynamicPropertyFactory sampleProp = DynamicPropertyFactory.getInstance();
System.setProperty("archaius.configurationSource.defaultFileName", "TestProperty.properties");
System.setProperty("archaius.fixedDelayPollingScheduler.delayMills", "500");
while(true) {
DynamicStringProperty sampleProp1 = sampleProp.getStringProperty("fields","");
System.out.println(sampleProp1.get());
}
}
}
我的“TestProperty.properties”文件只有一个名为字段的属性。运行程序后,我正在更新我的属性文件,但它仍然打印旧值。