配置文件
本系统会调用很多外部的 API 或服务, 这些代码秘钥和参数不能硬编码进入代码中, 因此需要使用配置文件统一管理
文件结构
系统中各个模块都有其可以配置的参数等配置信息, 且由于每个模块具有不同实现,因此每个实现也就有其配置信息。
配置信息内的结构如下所示, 第一层对应的模块,第二层则对应模块不同的实现类型。 值得注意的是, 如果一个模块只有一种实现,也就是说其实现类型为basic
, 那么对应的配置信息也为 basic
。 但如果该模块存在多种实现, 那么basic
即为多种实现的公共配置信息。
TODO: 多个实现类型共享一个配置信息暂时未实现...
具体到每个具体实现的配置信息, 其实际存储的是配置项名称和配置项内容的映射集合。 其中配置项名称应该使用小驼峰命名法, 目前每个配置内容项仅支持如上 3 种类型, 而配置项内容目前仅支持 number
, string
和 boolean
这 3 中类型, 因此在设计配置项时应该注意这三种类型在 json 中表现差异。
生命周期
每个模块在启动前都会重新加载配置信息, 也就是说模块在运行过程中配置信息是不会改变的。
在目前的实现中,每次启动时只会从内存中的副本中进行读取, 而不是本地的内存文件。 但是通过程序修改配置信息之后,系统会将配置信息重新写会。
最后更新于