如何管理大型项目中的配置数据?

How to manage configuration data in large projects?

随着软件项目的增长,它们不可避免地会堆积大量配置数据。每个新模块、库或框架都可以有一些。数据可以有多种形式,例如 XML、属性等。但它们通常位于代码定义的位置。是否有任何好的做法说明应该如何构造和管理配置?

无论技术如何 - 无论是 .Net、Java 还是其他技术 - 大型项目都需要使用 shared/central 配置 provider/manager,其中 modules/libraries依赖

对于 .Net,GAC 注册的配置管理器库是一个不错的选择,它从共享的 .Net 应用程序配置兼容配置文件公开配置设置。如果多个 processes/app 域使用此共享配置,则它们自己的应用程序配置可以包含中央配置文件,从而使用中央配置管理器。

对于 Java 类似的方法可能是可取的,只要应用程序配置库在每个应用程序的类路径上可用。在 Java 的情况下,很多配置本身当然会包含在库本身的代码或 xml 文件(想想 spring)中,但是通过使用 属性 占位符可以轻松地转换在中央属性文件中找到的值,以便它在 runtime/application 启动时可用。