我们开始开发基于 Spring 的 Web 应用程序(在 20 个 JVM 上运行)。Web 应用程序在不同的环境(例如 Dev、QA、test、Stress、Production)上运行。
我们正在研究为具有以下设计目标的应用程序设计一个配置框架......
配置框架的设计目标
- 支持继承模型:
如果配置属性是静态的,它应该能够全局定义,并继承到所有环境。环境应该能够覆盖继承属性的值。 - 消除冗余:
应该只需要在一个位置查看、修改和添加配置属性。这应该可以降低添加或修改属性时丢失文件的风险。 - 能够在运行时管理和维护属性。
应该能够轻松地更改内存中一对多 JVM 中的属性,并且可以选择在 JVM 重新启动时保留该更改。 - 调试能力。
为了确定功能开关等的当前状态,您应该能够轻松地将属性转储出内存(一对多属性)。 - 降低不同 INT、QA、STRESS 环境不同步且难以部署和维护的可能性。
- 支持轻松的开发,以及通过生产的部署过程。此更改不应对本地开发人员有效开发的能力产生负面影响。相反,它应该使它更容易。
在 Spring 中实现这种配置框架的任何建议/建议?