ShenNiusModularity项目源码学习(12:ShenNius.Common项目分析)

  ShenNius.Common项目中主要定义功能性的辅助函数类及通用类,供MVC模式、前后端分离模式下的后台服务使用,以提高编程效率。
在这里插入图片描述
  ApiResult文件内的ApiResult和ApiResult类定义了通用的数据返回格式,包括状态码、返回消息、返回数据等,主要在前后端分离模式下、ShenNius.Admin.API项目的控制器类中作为返回值使用。
  EnumExtension扩展类定义枚举类的通用扩展函数以获取枚举字段的值或者文本,主要用在ShenNius.Infrastructure、ShenNius.Domain及ShenNius.Admin.Mvc项目内。
  SwaggerExtension扩展类定义扩展函数注册Swagger服务(AddSwaggerSetup)、配置Swagger请求(UseSwaggerMiddle),同时为保障安全调用,还在AddSwaggerSetup函数内设置了基于JWT的安全认证。SwaggerExtension扩展类主要在ShenNius.Admin.API项目的ShenniusAdminApiModule中调用,当身份认证方式为jwt时,则注册并使用Swagger服务。
  Helper文件夹内均为功能性辅助类,主要包括:
  1)EmailHelper:该类调用MailKit包发送邮件,暂时没找到使用该类的项目;
  2)IpParseHelper:该类支持调用System.Net.NetworkInformation命名空间的相关类获取本地mac地址,同时支持向参考文献2发送请求查询IP所在地。该类主要用在ShenNius.Infrastructure、ShenNius.Common、ShenNius.Domain项目中,用于根据用户IP获取用户所在地;
  3)LogHelper:该类主要调用NLog记录操作日志及错误日志;
  4)Md5Crypt:该类用于计算md5值,主要用于计算用户密码的md5,用户表中没有明文存储密码,而是保存的md5值,用户登录、修改密码时比较的也是密码的md5值;
  5)MyHttpContext:全局保存项目启动时的IServiceProvider实例,用于在项目各处获取HttpContext,该类是在ShenNius.Admin.API项目的ShenniusAdminApiModule.OnConfigureServices函数中初始化的;
  6)NPOIHelper:该类调用Magicodes.IE.Excel包生成excel模版文件,并能从excel文件中读取并生成实体类对象集合。ShenNius.Admin.API项目的ApiTenantBaseController、KeywordController使用该类;
  7)RSACrypt:该类调用XC.RSAUtil包生成RSA密钥对、加密/解密字符串。MVC模式及前后端分离模式下的用户登录时首先获取RSA密钥,然后在客户端将用户密码加密后传递到服务端,在通过本类解密后使用;
  8)SysCacheKey:该类主要存储固定字符串,具体用处请下载项目中通过查找所有引用查看,用的地方不少;
  9)WebHelper:该类用于移除文本字符的a标签、移除字符文本Img里面Alt关键字包裹的内容,主要在ShenNius.Admin.API项目的KeywordController.ContentReplace函数内使用。

参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity
[2]http://whois.pconline.com.cn/ipJson.jsp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23680.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OkHttp使用和源码分析学习(二)

流程及源码分析 OkHttpClient使用过程主要涉及到OkHttpClient、Request、Response、Call、Interceptor,具体参考OkHttp使用。OkHttp在设计时采用门面模式,将整个系统复杂性隐藏,子系统通过OkHttpClient客户端对外提供。 流程 创建 OkHttp…

架构师论文《论湖仓一体架构及其应用》

软考论文-系统架构设计师 摘要 作为某省级商业银行数据中台建设项目技术负责人,我在2020年主导完成了从传统数据仓库向湖仓一体架构的转型。针对日益增长的支付流水、用户行为埋点及信贷审核影像文件等多模态数据处理需求,原有系统存在存储成本激增、实…

政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 小伙伴铁子们,上手先熟悉起来训练工具的每一个参数,很重要。 参照我…

【Rust中级教程】2.8. API设计原则之灵活性(flexible) Pt.4:显式析构函数的问题及3种解决方案

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 说句题外话,这篇文章一共5721个字,是我截至目前写的最长的一篇文章&a…

git 克隆及拉取github项目到本地微信开发者工具,微信开发者工具通过git commit、git push上传代码到github仓库

git 克隆及拉取github项目到本地微信开发者工具,微信开发者工具通过git commit、git push上传代码到github仓库 git 克隆及拉取github项目到本地 先在自己的用户文件夹新建一个项目文件夹,取名为项目名 例如这样 C:\Users\HP\yzj-再打开一个终端页面&…

gitlab初次登录为什么登不上去

今天又写了一次gitlab安装后,第一次登录的问题。 gitlab工作笔记_gitlab默认用户名密码-CSDN博客 因为又掉这个坑里了。 # 为什么第一次登录这么难? 第一是因为gitlab启动的时间很长,有时候以为装错了。 第二是初始密码,如果…

华为认证考试证书下载步骤(纸质+电子版)

华为考试证书可以通过官方渠道下载相应的电子证书,部分高级认证如HCIE还支持申请纸质证书。 一、华为电子版证书申请步骤如下: ①访问华为培训与认证网站 打开浏览器,登录华为培训与认证官方网站 ②登录个人账号 在网站首页,点…

【UCB CS 61B SP24】Lecture 11 - Inheritance 4: Iterators, Object Methods学习笔记

本文内容为集合(Set)的介绍与使用,并通过数组手动实现集合,接着介绍了迭代器,使用迭代器我们能够更方便地遍历集合中的元素。 1. Set 1.1 Set介绍与Java实现类的使用 集合(Set)是一种常见的数…

sessionStorage问题的思考和解决

通过前端访问成功,直接访问后端接口失败。思考的过程、问题的解决Session和sessionStorage 通过前端访问成功,直接访问后端接口失败。 做黑马点评的使用Redis代替Session实现短信登录的功能时,遇到了一个问题: 就是我设计好代码后…

YOLO11改进-模块-引入混合结构模块Mix Structure Block 提高多尺度、小目标

在图像去雾领域,传统的基于卷积神经网络(CNN)和 Transformer 的方法存在局限性。CNN 方法大多存在感受野不足的问题,限制了单个像素在神经网络中的参考范围,部分考虑大感受野的 CNN 方法又忽略了图像的多尺度特性&…

MySQL主从架构

MySQL主从架构 MySQL REPLICATION 在实际生产环境中,如果对数据库的读和写都在一个数据库服务器中操作。无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制(…

6层高速PCB设计入门第1~10讲

第一讲 课程介绍 无痛入门!6层高速PCB设计!_哔哩哔哩_bilibili 第二讲 逻辑派原理图分析 开发板资料文档:https://wiki.lckfb.com/zh-hans/fpga-ljpi/ 最需要注意的信号就是FPGA与DDR3、HDMI交互的信号,其次是GD32读写TF Card的…

Mesh自组网技术及应用

前言: Mesh自组网随着无线技术发展,在消费领域最近比较有热度。当然应用的场景不限于普通消费领域,在工业、军事领域被也是越来越重要。 一、什么是无线Mesh技术 1.1 无线自组网概念 无线Mesh是一种智能、自组织、多跳、移动、对等、去中心…

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后,接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样,也是包含两个方法,一个是__init__(),另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

垂类大模型微调(二):使用LLaMA-Factory

上一篇博文和大家一起安装了LLaMA-Factory工具,并下载了大模型在上面进行了简单的加载和推理,今天尝试通过LoRa技术对大模型进行微调; 一、训练集准备 1.1 介绍训练集结构 这里演示对Qwen2.5-0.5B-Instruct-GPTQ-Int4模型进行LoRA微调, 大家可以根据垂类大模型微调(一)…

什么是MySql的主从复制(主从同步)?

主页还有其他面试题总结,有需要的可以去看一下,喜欢的就留个三连再走吧~ 1.什么是MySql的主从复制原理? 主从复制的核心就是二进制binlog(DDL(数据定义语言)语句和DML(数据操纵语言&#xff09…

坐标变换及视图变换和透视变换(相机透视模型)

文章目录 2D transformationScaleReflectionShear(切变)Rotation around originTranslationReverse变换顺序复杂变换的分解 齐次坐标(Homogenous Coordinates)3D transformationScale&TranslationRotation Viewing / Camera t…

文字语音相互转换

目录 1.介绍 2.思路 3.安装python包 3.程序: 4.运行结果 1.介绍 当我们使用一些本地部署的语言模型的时候,往往只能进行文字对话,这一片博客教大家如何实现语音转文字和文字转语音,之后接入ollama的模型就能进行语音对话了。…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 (1)提取较亮区域 - pass1 (2)高斯模糊 - pass2&3 (3&#xff…

PING命令TTL解析

在 ping 命令中,TTL(Time to Live,生存时间) 是 IP 数据包的核心字段之一,用于控制数据包在网络中的生命周期。以下是针对 TTL 的简明解析: 1. TTL 的核心作用 防循环机制:TTL 是一个计数器&a…