YiShaAdmin配置管理:appsettings.json与动态配置中心

YiShaAdmin配置管理:appsettings.json与动态配置中心

YiShaAdmin配置管理:appsettings.json与动态配置中心

【免费下载链接】YiShaAdmin 基于 .*** Core MVC 的权限管理系统,代码易读易懂、界面简洁美观 项目地址: https://gitcode.***/GitHub_Trending/yi/YiShaAdmin

在基于.*** Core MVC的权限管理系统YiShaAdmin中,配置管理是系统运行的基础。本文将详细介绍YiShaAdmin的配置体系,包括静态配置文件appsettings.json的结构与使用,以及动态配置中心的实现方式,帮助用户轻松掌握系统配置的管理技巧。

静态配置基石:appsettings.json

appsettings.json作为YiShaAdmin的核心配置文件,存储了系统运行所需的基础参数。通过读取该文件,系统可以获取数据库连接、缓存设置、日志级别等关键信息。

文件路径与基本结构

YiShaAdmin的appsettings.json位于Web项目根目录下,具体路径为:YiSha.Web/YiSha.Admin.Web/appsettings.json。该文件采用JSON格式,主要包含Logging、AllowedHosts和SystemConfig三个一级节点。

核心配置项解析

SystemConfig节点是系统配置的核心,包含了数据库连接、缓存设置、登录配置等关键信息。以下是部分重要配置项的说明:

  • 数据库配置:通过DBProvider指定数据库类型(如SqlServer),DBConnectionString设置连接字符串,DB***mandTimeout定义数据库操作超时时间(单位:秒)。
  • 缓存设置:CacheProvider指定缓存使用方式(Memory或Redis),当选择Redis时,需通过RedisConnectionString配置Redis服务器地址。
  • 登录配置:LoginMultiple控制是否允许一个账户在多处登录,LoginProvider指定登录信息保存方式(Cookie、Session或WebApi)。

配置示例

以下是appsettings.json中SystemConfig节点的部分配置示例:

"SystemConfig": {
  "Demo": false, // 是否是演示模式
  "LoginMultiple": true, // 是否允许一个账户在多处登录
  "LoginProvider": "Cookie", // 登录信息保存方式 Cookie Session WebApi
  "SnowFlakeWorkerId": 1, // SnowFlake 节点序号
  "ApiSite": "http://localhost:5001", // Api地址,例如可以上传文件到Api
  "VirtualDirectory": "/admin", // 虚拟目录 

  "DBProvider": "SqlServer",
  "DBConnectionString": "Server=localhost;User Id=sa;Password=hmAdmin@;Database=YsData;",
  "DB***mandTimeout": 180, // 数据库超时时间,单位秒
  "DBBackup": "", // 数据库备份路径

  "CacheProvider": "Memory", // 缓存使用方式 Memory Redis
  "RedisConnectionString": "127.0.0.1:6379"
}

动态配置中心:数据字典与定时任务

除了静态配置文件,YiShaAdmin还提供了动态配置中心,允许用户在系统运行时动态管理配置信息。动态配置主要通过数据字典和定时任务两大模块实现。

数据字典管理

数据字典(DataDict)用于管理系统中的各类静态数据,如下拉框选项、状态码等。通过数据字典,用户可以在不修改代码的情况下,动态增删改查各类业务数据。

数据字典业务逻辑

数据字典的业务逻辑主要由DataDictBLL类实现,位于YiSha.Business/YiSha.Business/SystemManage/DataDictBLL.cs。该类提供了数据字典的查询、保存、删除等操作,并通过缓存机制提高查询性能。

例如,GetDataDictList方法用于获取所有数据字典及其明细信息,并将结果缓存起来,减少数据库访问次数:

public async Task<TData<List<DataDictInfo>>> GetDataDictList()
{
    TData<List<DataDictInfo>> obj = new TData<List<DataDictInfo>>();
    List<DataDictEntity> dataDictList = await dataDictCache.GetList();
    List<DataDictDetailEntity> dataDictDetailList = await dataDictDetailCache.GetList();
    // ... 数据处理逻辑 ...
    obj.Data = dataDictInfoList;
    obj.Tag = 1;
    return obj;
}
数据字典缓存

数据字典使用了缓存机制,通过DataDictCache和DataDictDetailCache类管理缓存数据。当数据字典发生变更时,系统会自动清除缓存,确保下次查询获取最新数据。

定时任务配置

定时任务(AutoJob)允许用户在系统中配置周期性执行的任务,如数据备份、日志清理等。通过动态配置定时任务,可以灵活地满足系统的自动化需求。

定时任务业务逻辑

定时任务的业务逻辑由AutoJobBLL类实现,位于YiSha.Business/YiSha.Business/SystemManage/AutoJobBLL.cs。该类提供了任务的创建、修改、删除、启动和暂停等操作。

例如,ChangeJobStatus方法用于修改任务状态(启动或暂停),并将状态变更保存到数据库:

public async Task<TData> ChangeJobStatus(AutoJobEntity entity)
{
    TData obj = new TData();
    await autoJobService.SaveForm(entity);
    obj.Tag = 1;
    return obj;
}
任务状态管理

定时任务的状态(启动/暂停)通过JobStatus字段控制。在删除任务时,系统会检查任务状态,确保只有处于暂停状态的任务才能被删除:

public async Task<TData> DeleteForm(string ids)
{
    TData<long> obj = new TData<long>();
    foreach (long id in TextHelper.SplitToArray<long>(ids, ','))
    {
        AutoJobEntity dbEntity = await autoJobService.GetEntity(id);
        if (dbEntity.JobStatus == StatusEnum.Yes.ParseToInt())
        {
            obj.Message = "请先暂停 " + dbEntity.JobName + " 定时任务";
            return obj;
        }
    }
    await autoJobService.DeleteForm(ids);
    obj.Tag = 1;
    return obj;
}

配置管理最佳实践

静态配置与动态配置的结合

静态配置(appsettings.json)适用于系统运行的基础参数,如数据库连接、缓存服务器地址等,这些参数通常在系统部署时确定,变更频率较低。动态配置(数据字典、定时任务)则适用于业务相关的配置,如业务参数、周期性任务等,这些配置需要根据业务需求灵活调整。

配置缓存策略

对于频繁访问的配置信息(如数据字典),建议使用缓存机制提高系统性能。YiShaAdmin中数据字典的查询结果会被缓存,当配置发生变更时,系统会自动清除缓存,确保数据的一致性。

配置安全

  • 敏感配置(如数据库连接字符串)应避免明文存储,建议使用加密方式或环境变量进行管理。
  • 定期备份appsettings.json文件,以防配置文件损坏或丢失。

通过合理使用静态配置文件和动态配置中心,可以充分发挥YiShaAdmin的灵活性和可扩展性,满足不同场景下的配置需求。掌握这些配置管理技巧,将有助于更好地维护和优化YiShaAdmin系统。

【免费下载链接】YiShaAdmin 基于 .*** Core MVC 的权限管理系统,代码易读易懂、界面简洁美观 项目地址: https://gitcode.***/GitHub_Trending/yi/YiShaAdmin

转载请说明出处内容投诉
CSS教程网 » YiShaAdmin配置管理:appsettings.json与动态配置中心

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买