我正在运行多个API,这些API从文本文件加载默认属性 但是,如果1 API更改了属性值,我希望所有API都能够读取新值 我尝试使用System.setProperty(“prop_name”),但这不会对其他API进行更改 我不想修改原始文本文件。还想避免增加编写新属性文件的开销并使所有API加载此文件(有很多API和很多属性,并且不希望每次发生属性更改都会发生这种情况)。 / p>
我该怎么做?
答案 0 :(得分:1)
您需要更改库以获取共享的Properties
对象或使用System.getProperties()
。如果每个库通过打开文件直接Properties.load(...)
,那么您的选择是有限的:
Properties.load(...)
的调用Properties
类(仅为完整性而包含在此列表中)答案 1 :(得分:0)
您可以为每个JVM生成一个reaper线程,该JVM轮询目录中的文件以查找更改并应用它们,因为它们适用于该JVM。
您可以使用套接字API将所有应用程序连接到服务器应用程序。服务器可以管理属性,客户端可以定期轮询更改。
基本上你正在做的是促进进程间通信。因此,执行此操作的任何标准方法(文件,管道,套接字,Web服务等)都应允许您跨应用程序同步属性。您需要更加精细(就调度个别更改而不是擦除和重新加载而言)是您的解决方案更复杂的