分享一个自己开发的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任务调度中心

软件架构图

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

尾声

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

相关推荐
吃面不喝汤661 小时前
Flask + Swagger 完整指南:从安装到配置和注释
后端·python·flask
讓丄帝愛伱2 小时前
spring boot启动报错:so that it conforms to the canonical names requirements
java·spring boot·后端
weixin_586062022 小时前
Spring Boot 入门指南
java·spring boot·后端
凡人的AI工具箱8 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
是店小二呀9 小时前
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
开发语言·c++·后端
canonical_entropy9 小时前
金蝶云苍穹的Extension与Nop平台的Delta的区别
后端·低代码·架构
我叫啥都行9 小时前
计算机基础知识复习9.7
运维·服务器·网络·笔记·后端
无名指的等待71210 小时前
SpringBoot中使用ElasticSearch
java·spring boot·后端
.生产的驴11 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
AskHarries11 小时前
Spring Boot利用dag加速Spring beans初始化
java·spring boot·后端