Snowy框架使用及分析
本文使用的snowy版本为3.0.2
简介
**Snowy(SnowyAdmin)**是国内首个国密前后端分离快速开发平台,集成国密加解密插件, 软件层面完全符合等保测评要求,同时实现国产化机型、中间件、数据库适配, 技术框架与密码结合,让更多的人认识密码,使用密码;更是让前后分离“密”不可分。
Snowy中加密的方式为SM4加密,SM4是中国国家密码管理局标准的对称加密算法,具有高安全性和良好的性能,被广泛用于符合中国国家安全标准的应用中。
snowy整体模块如下:
snowy
|-snowy-admin-web == 前端
|-public == 基础静态文件
|-src == 前端源代码
|-api == API接口转发
|-assets == 静态文件
|-components == VUE组件
|-config == 基础配置
|-layout == 基础布局
|-locales == 多语言配置
|-router == 基础路由配置
|-store == Pinia缓存配置
|-style == 样式风格配置
|-utils == 工具类
|-views == 所有视图界面
|-snowy-common == 基础通用模块
|-snowy-plugin == 插件包
|-snowy-plugin-auth == 登录鉴权插件
|-snowy-plugin-biz == 业务功能插件
|-snowy-plugin-client == C端功能插件
|-snowy-plugin-dev == 开发工具插件
|-snowy-plugin-gen == 代码生成插件
|-snowy-plugin-mobile == 移动端管理插件
|-snowy-plugin-sys == 系统功能插件
|-snowy-plugin-api == 插件api包
|-snowy-plugin-auth-api == 登录鉴权插件api接口
|-snowy-plugin-biz-api == 业务功能插件api接口
|-snowy-plugin-client-api == C端功能插件api接口
|-snowy-plugin-dev-api == 开发工具插件api接口
|-snowy-plugin-gen == 代码生成插件api接口
|-snowy-plugin-mobile == 移动端管理插件api接口
|-snowy-plugin-sys-api == 系统功能插件api接口
|-snowy-web-app == 主启动模块本文讲述后端的使用过程。
模块分块讲解
snowy-common
此模块主要是通用模块的说明以及部分数据库的表中字段的说明,这里讲述比较重要的类。
CommonCacheOperator
主要的作用就是操作所有的redis缓存数据,且通过源码可知再服务启动时会将数据库的资源加载到redis缓存中。
DeleteFlagEnum
表明数据库的数据逻辑删除标识,且缓存的是String类型的数据NOT_DELETE以及DELETED.
CommonException
定义全局异常,如果系统内部报错,则会进行CommonException异常抛出。
CommonPageRequest
通用分页Util,其中自动读取request请求中的对应的参数数据。主要的体现在CommonServletUtil.getParamFromRequest(PAGE_SIZE_PARAM_NAME);前端分页参数为
size:表示每页条数
current:表示第几页
CommonEntity
表示通用的数据库字段
注意事项
通用数据库字段,都是系统生成的且字段根据用户信息进行填充。
CommonResult
通用后端返回数据类型,包含code、msg、data。
通用工具类,具体使用可以根据业务需求,自行查看使用
id的生成需要根据自己的情况进行生成,我查看源码也未找到id是否可以不进行设置自动生成。如果有大佬知道请评论告诉我一下。
snowy-plugin
snowy基于插件式开发
snowy-plugin-auth
snowy框架集成sa-token完成项目的登录鉴权
SaToken的鉴权模式原理极其简单易懂,核心逻辑就是判断一个账号是否拥有指定权限,深入到底层数据中,就是每个账号都会拥有一个权限码集合,框架来校验这个集合中是否包含指定的权限码。
snowy-plugin-gen
此模块为代码生成器模块,该系统使用beetl模板引擎完善代码生成的过程,具体与velocity引擎大致差不多,可以查看 https://blog.youkuaiyun.com/m0_56512023/article/details/139417671 进行学习。
使用
1.创建数据库sql(需保证包含通用字段)
此为代码生成器,然后进行字段编写即可。
2.@Schema
是snowy自己封装的一个swagger注解,进行前后端交互,数据的介绍。
3.简单使用
一般情况需满足系统规则创建的新增、修改的实体命名需按照系统类似进行命名,比如BizOrgAddParam、BizOrgUpdateParam,编写规则最好按照代码规则编写,具体的增删改查都请查看源码中某一模块的编写方式进行编写。
代码生成器生成后只需要修改部分代码,以及根据业务需求增加模块即可。