场景:应用程序具有可以启用某些优化的算法。 默认情况下,一些处于打开状态,一些处于关闭状态。 有没有一种便捷的方法来用Java实现某种全局属性系统?
要求:
备择方案:
-DenableOptimizationX=true
和System.getProperty("foo.bar.enableOptimizationX")
System.getenv("enableOptimizationX")
这些(或其他)中哪一个似乎是此方案的最佳解决方案?
- 它使您可以轻松查看正在使用的所有属性。
- 他们目前的价值是多少
- 每个部署环境可以具有自己的属性值(例如,qa,prod)
- 您可以在逻辑上将不同文件中的属性分组。
propertiesMap
。 在此类的静态块中,使用所有属性文件中的值来初始化propertiesMap
。 您现在可以在代码中的任何位置使用propertiesMap
。 您可以通过以下方式访问它
PropertiesFactory.getPropertiesMap()。get(“ key”);
更新资料
如果您希望值具有可更新性,那么propertiesMap需要是可变的。 您将需要在服务器上运行该程序,并在该服务器上维护propertiesMap的实例,并且在要覆盖其键之一的值时可以在该图上放置方法。