场景:应用程序具有可以启用某些优化的算法。默认情况下有些是打开的,有些是关闭的。有没有一种方便的方法在Java中实现某种全局属性系统?
要求:
备选方案:
-DenableOptimizationX=true
和System.getProperty("foo.bar.enableOptimizationX")
System.getenv("enableOptimizationX")
这些(或其他)中的哪一个似乎是这种情况的最佳解决方案?
答案 0 :(得分:2)
- 可以轻松查看所有属性的使用情况。
- 他们当前的价值是什么,
- 每个部署环境都可以拥有自己的属性值(例如,qa,prod)
- 您可以在不同文件中对属性进行逻辑分组。
醇>
propertiesMap
。在静态块中的此类中,使用来自所有属性文件的值初始化propertiesMap
。
您现在可以从代码中的任何位置使用propertiesMap
。您可以将其作为
进行访问 。PropertiesFactory.getPropertiesMap()得到( “钥匙”);
更新
如果您希望值能够更新,那么propertiesMap需要是可变的。您需要在服务器上运行此程序,其中维护propertiesMap的实例,并且当您想要覆盖其中一个键的值时,可以将方法放在此映射上。