分享一个自己开发的SpringCloud微服务开发平台

前言

​ 都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项目,所以目前只能借鉴改造,勿喷^_^)。

项目地址

在线体验

体验系统只有主要组件及功能,因服务器资源有限故都是单节点部署,但是所有组件及应用都支持集群。

功能简介

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任务调度中心

软件架构图

备注:图中灰色虚线块组件作者并未搭建(服务器资源有限),只做一个选型参考。

尾声

"纸上得来终觉浅,绝知此事要躬行 ",想要学好编程,只有靠自己一行一行敲出来才有可能学好,努力吧,少年!

相关推荐
hlsd#1 分钟前
go mod 依赖管理
开发语言·后端·golang
陈大爷(有低保)5 分钟前
三层架构和MVC以及它们的融合
后端·mvc
亦世凡华、6 分钟前
【启程Golang之旅】从零开始构建可扩展的微服务架构
开发语言·经验分享·后端·golang
河西石头6 分钟前
一步一步从asp.net core mvc中访问asp.net core WebApi
后端·asp.net·mvc·.net core访问api·httpclient的使用
2401_8574396918 分钟前
SpringBoot框架在资产管理中的应用
java·spring boot·后端
怀旧66619 分钟前
spring boot 项目配置https服务
java·spring boot·后端·学习·个人开发·1024程序员节
阿华的代码王国40 分钟前
【SpringMVC】——Cookie和Session机制
java·后端·spring·cookie·session·会话
德育处主任Pro1 小时前
『Django』APIView基于类的用法
后端·python·django
哎呦没4 小时前
SpringBoot框架下的资产管理自动化
java·spring boot·后端
2401_857600954 小时前
SpringBoot框架的企业资产管理自动化
spring boot·后端·自动化