前言
都2023年了,还有一种开发一个快速开发平台的想法,这大概有点落伍了,现在各种开源的系统实在是太多了。不过作为一个编程爱好者,还是决定自己从零开发一个,出发点有两个,一个是刚好这段时间稍微空闲一些,也是一直有这个想法,所以还是决定自己从零开发一个,可以跟随各种技术框架版本迭代而迭代,毕竟JDK都更新到21版本了,另一个是决定开始写博客文章,记录下自己平时的学习内容;
下面的内容是介绍上面说的这个快速开发平台,名称叫Zerosx-Cloud多租户开发平台,以下简称《Zerosx-Cloud》,本文只介绍Zerosx-Cloud支持的主要功能,具体的代码、更详细的文档可以前往Gitee或者Github。
平台简介
Zerosx-Cloud是由作者个人兴趣下搭建及开发,开源,免费,仅供学习参考。
- 基于JDK8、SpringBoot2.7.16、SpringCloud2021.0.5和SpringCloudAlibaba2021.0.5.0且采用前后端分离的微服务多租户体系架构;
- 采用自定义Spring Boot Starter组件化的思想,简化开发,提升代码复用能力,结构解耦,易于扩展;
- 实现了SpringCloudGateway集成OAuth2.0统一认证授权及URL级功能权限校验(适用于网络隔离场景,即网关是统一入口),且可自定义扩展OAuth2.0授权模式;
- 集成Knife4j基于OpenAPI3的接口文档,方便前后端对接;
- 代码生成器一键生成基础CRUD功能,节约开发时间,更多注重业务开发;
- 提供一套基于Vue2.x的前端项目[zerosx-vue2],此项目是参考【若依】前端开源改造适配,感谢若依(我是Vue2.x初学者,还不具备从零搭建一个完整的Vue项目,所以目前只能借鉴改造,勿喷^_^)。
项目地址
- Gitee地址:gitee.com/javacctvnew...
- Github地址:github.com/javacctvnew...
在线体验
- 演示体验地址:http://120.79.152.222/login
体验系统只有主要组件及功能,因服务器资源有限故都是单节点部署,但是所有组件及应用都支持集群。
功能简介
1. 非业务功能
- 网关统一权限控制:URL级的功能按钮的权限控制,支持配置不同客户端及白名单URL;
- 网关统一鉴权:OAuth2令牌Token的有效性校验,支持配置忽略认证的URL;
- 网关聚合文档:集成Knife4j基于OpenAPI3规范的接口文档,聚合所有微服务,方便前后端对接
- OAuth2.0认证授权:
- 支持OAuth2.0默认的4种鉴权方式;
- 可扩展自定义授权模式,已实现用户名+验证码+密码、手机号码验证码两种授权模式;
- 支持多账户类型授权,应用场景是同一授权模式下需要对不同的账户进行授权(不同数据库表);
- 数据权限:多租户的数据隔离,采用的是同一数据库表的逻辑隔离(table添加租户标识的列来区分数据);
- 数据安全:敏感数据的加密存储及解密,如手机号码、身份证号码等,不同加密字段可配置不同的加解密算法;
- 数据导出:支持大量数据快速导出,支持配置每个sheet页的数据大小及每批次查询数据库数据条数大小;
- 数据翻译:字段标识ID翻译成名称,已支持数据字典、枚举、行政区域、OSS访问链接、租户名称翻译,可扩展;
- 链路追踪:记录整个调用链路的traceId和spanId,支持多线程;
- OSS存储:支持多家OSS厂商且参数配置界面化,方便管理及文件管理,已实现阿里云、七牛云、腾讯云厂商,可扩展;
- SMS短信:支持多家SMS厂商且参数配置界面化,方便管理,已实现阿里云、聚合短信厂商,可扩展;
- 分布式任务调用:集成XXL-JOB分布式任务调度;
- 分布式事务:集成Seata分布式事务;
- 分布式锁:集成Redisson分布式锁,有测试案例;
- 代码生成器:高度符合阿里巴巴开发手册规范的前后端代码一键生成,减少CRUD基础开发,更专注业务开发;
- 系统监控:集成SpringBootAdmin应用监控;
2. 内置基础功能
- 租户管理
- 租户管理:接入系统的租户公司的管理
- 套餐管理:租户套餐定价管理(计划)
- 定价规则:定义套餐的不同规则不同价格(计划)
- 优惠折扣:发布有时间限制的套餐购买优惠(计划)
- 租户订单:租户套餐购买订单管理(计划)
- 权限管理
- 用户管理:系统用户的配置,及管理租户的数据权限分配
- 角色管理:角色菜单权限分配
- 部门管理:配置租户的组织部门,也可用作用户组,简化新用户的权限分配
- 岗位管理:岗位管理,用户所担任的职务
- 系统管理
- 菜单管理:菜单、按钮、功能权限的管理,生成动态路由
- 字典管理:数据字典的维护
- 参数设置:系统动态参数的维护
- 日志管理
- 操作日志:操作记录日志
- 登录日志:OAuth2授权登录日志
- 资源管理
- 行政区域:中华人民共和国行政区域的维护
- 对象存储:集成多家对象存储,配置管理及上传文件管理
- 短信配置:集成多家短信服务商及短信业务模板的配置
- 系统工具
- 系统监控:SpringBootAdmin系统监控
- 接口文档:OpenAPI3聚合接口文档
- 任务调度中心:XXL-JOB任务调度中心
软件架构图
备注:图中灰色虚线块组件作者并未搭建(服务器资源有限),只做一个选型参考。
尾声
"纸上得来终觉浅,绝知此事要躬行 ",想要学好编程,只有靠自己一行一行敲出来才有可能学好,努力吧,少年!