这是一个基于Jdk21,框架是Dubbo3 + Springboot3的脚手架。
详细介绍下项目中使用的框架:基础架构是SpringBoot3,服务治理是Apache Dubbo,ORM框架选用了Mybatis-plus,注册中心以及配置中心使用了Nacos,网关选用了Gateway,认证以及资源框架使用了Spring Security,接口文档选用了knife4j,分布式定时任务选用了ElasticJob,链路追踪使用的是Skywalking,流程框架使用的是Flowable。
项目文档请参考文档:DEPLOY.md
dubbo-dependencies-bom
:Maven Pom版本管理文件dubbo-gateway
:前置网关层,集成限流与JWT验证dubbo-api
:后置网关层,即真正的入口dubbo-common
:基础包的框架dubbo-service
:Dubbo的服务提供者,即业务服务dubbo-task
:分布式定时任务dubbo-process
:流程引擎
dubbo-api-admin
: 管理后台网关层,鉴权基于spring-security,认证服务使用的是dubbo-service-staff
dubbo-api-user
: 客户前台网关层,鉴权基于spring-security,认证服务使用的是dubbo-service-user
dubbo-api-monitor
: 监控平台,认证服务使用的是dubbo-service-staff
,如需修改可以在dubbo-service-auth
服务的表中修改dubbo_tag
dubbo-common-api-starter
: 通用web或者网关层框架1.1 全局异常拦截器 1.2 Swagger基础配置 1.3 Spring MVC的全局配置:Jackson、Error重定向、国际化
dubbo-common-dao-starter
: 通用DAO层的框架(基于Mybatis-plus)2.1 数据库字段加解密、脱敏 2.2 Mybatis-plus的插件:乐观锁、防止全表更新与删除、分页 2.3 公共字段的赋值 2.4 LocalTransactionTemplate: 本地事务调用模板
dubbo-common-search-starter
: 通用Elastic Search层的框架(借鉴与Mybatis-plus,继承EsMapper即可开箱即用)3.1 参考easy-es:后续该模块可能会被删除
dubbo-common-lock-starter
: 通用Lock框架4.1 RedisLockUtil: 基于Redisson封装的分布式锁工具 4.2 ZookeeperLockUtil: 后续会增加基于zk封装的分布式锁工具
dubbo-common-remote
: 通用Dubbo远程接口框架(包含了参数验证器:validation)5.1 Dubbo远程服务提供jar的依赖:主要就是基础业务异常与通用枚举
dubbo-common-service
: 业务通用核心框架6.1 通用常量池 6.2 BeanUtil工具类
dubbo-common-util
: 通用工具类框架7.1 脱敏注解@Desensitization:支持10中类型(加解密、DFA、手机号等) 7.2 去除首尾空格注解@Trim 7.3 公告工具类:时间、Json、加解密等
dubbo-exception-filter
: Dubbo自定义异常过滤器8.1 Dubbo对自定义业务异常过滤
dubbo-security-client-starter
: security-client,适用于各个网关服务中9.1 匿名访问注解@Anonymous:对于不需要登录校验的接口直接在类或者方法上加上该注解,而不需要配置到Security的配置中 9.2 认证上下文:AuthContext 9.3 登录设备上下文:DeviceContext 9.4 自定义参数解析器:AuthUserArgumentResolver
dubbo-service-auth
: 认证资源服务,基于spring-security以及jwtdubbo-service-staff
: 员工信息服务dubbo-service-user
: 客户信息服务dubbo-service-search
:搜索服务
GlobalJWTFilter
: 自定义全局JWT过滤器GlobalLimitFilter
: 自定义限流过滤器
dubbo-task-elastic
:使用的是基于elastic job为框架dubbo-task-xxl
:使用的是基于xxl-job为框架
dubbo-process-flowable
:使用的是基于flowable为框架,由于最新的7.0.0版本中不在包含flowable-ui,所以ui版本需要下载最新的6.x.x版本
- 如有问题可以提交issue
- 如有需要Spring Cloud,请点击Spring Cloud
- 如有需要Springboot2版本,请点击dubbo-springboot-nacos
Dubbo Springboot3 Project is under the MIT License.