配置管理
简介
本文档详细说明CMS插件系统的配置管理机制,涵盖appsettings.json
文件中各项配置的作用、运行时加载机制、多环境管理策略以及敏感信息保护方法。重点分析如何通过CMSPluginEntry
类配置外部API、数据库类型和其他运行时参数,并提供完整的配置项列表和扩展指南。
项目结构与配置文件布局
本项目采用模块化设计,配置文件分布在多个位置以支持不同层级的配置需求:
src/CMS.Plugin.MyPluginName/appsettings.json
:主插件配置文件,定义外部API等服务对接参数src/CMS.Plugin.MyPluginName.EntityFrameworkCore/appsettings.json
:数据访问层配置,包含数据库连接字符串src/CMS.Plugin.MyPluginName/Properties/launchSettings.json
:开发环境启动配置,定义环境变量
这种分层结构实现了配置的职责分离,便于维护和环境适配。
图示来源
核心配置机制
系统采用基于依赖注入和配置节(Configuration Section)的现代化配置体系,通过IConfiguration
接口统一管理所有配置项。配置来源包括JSON文件、环境变量和可能的数据库设置。
配置系统的关键特性包括:
- 分层覆盖机制:优先级为环境变量 > JSON文件 > 默认值
- 强类型选项模 式:通过
IOptions<T>
实现类型安全的配置访问 - 动态模块加载:根据配置决定加载哪个数据库实现模块
运行时配置加载流程
配置加载发生在插件初始化阶段,由CMSPluginEntry
类的Register
方法协调完成。整个流程遵循依赖注入容器的生命周期管理原则。
图示来源
外部API配置
外部API配置通过IMyPluginNameExternalApi
接口定义,并在appsettings.json
中进行具体设置。
配置项说明
- HttpHost:外部API的服务地址,用于HTTP客户端初始化
- 配置路径:
IMyPluginNameExternalApi:HttpHost
- 默认值:
http://127.0.0.1:18000/
系统使用WebApiClient框架实现类型化HTTP客户端,通过AddHttpApi<T>()
和ConfigureHttpApi()
方法完成配置绑定。