该项目基于JDK21 + Springboot(3.5.x) + SpringCloud来进行搭建的。注册中心使用Nacos,认证鉴权使用SpringSecurity,分库分表使用ShardingJDBC,接口文档使用Knife4j,定时任务使用XxlJob。
- JDK:选择JDK21。
VirtualThreadUtil
:虚拟线程工具类 - 主框架:Springboot + SpringCloud,最新版本
- Spring Security:认证框架选用SpringSecurity
- Mybatis-plus:ORM选择Mybatis-plus
- knife4j:接口文档
- Xxl-Job:定时任务
- ShardingJDBC:分库分表
- Springboot-Admin:监控中心
cloud-dependencies-bom
:Maven Pom版本管理文件cloud-api
:后置网关层,即真正的入口
- 2.1
cloud-api-monitor
: 监控平台 监控地址 - 2.2
cloud-api-staff
:员工服务业务网关层
cloud-common
:基础包的框架
- 3.1
cloud-common-api
: 通用Web或者网关层框架,以及SpringSecurity鉴权实现AuthExceptionHandleAdvice:全局异常Advice(认证鉴权) Anonymous:匿名访问注解 注:加在Mapping的类或者方法上,折该方法不会进行认证处理 JwtAuthenticationTokenFilter:JWT认证Filter UserDetailsServiceImpl:SpringSecurity(UserDetailsService)实现类
- 3.2
dubbo-common-dao
: 通用DAO层的框架(基于Mybatis-plus)MapperParamInterceptor:入参Interceptor(加密入口) MapperResultInterceptor:出参Interceptor(解密入口)
- 3.3
dubbo-common-base
: 业务通用核心框架GlobalControllerExceptionAdvice:全局异常Advice(业务) ResultFeignDecoderAdvice:Feign的编码器 ResultResponseBodyAdvice:ResponseBody Advice(也可以换成Feign的解码器) @ApiVersion:接口版本控制注解,根据http请求header头中appVersion,与接口注解(@ApiVersion)版本进行匹配,选择大于或者等于该注解版本最接近的接口
- 3.4
dubbo-common-exception
: 业务异常通用框架 - 3.5
dubbo-common-feign
: SpringCloud的feign通用框架 - 3.6
dubbo-common-util
: 通用工具类框架 - 3.7
dubbo-common-xxl-job
: 通用定时任务框架 4cloud-service
:Feign的服务提供者,即业务服务 - 4.1
cloud-service-auth
: 认证资源服务,基于SpringSecurity以及JWT - 4.2
cloud-service-staff
: 员工信息服务4.2.1 使用shardingsphere-jdbc对登录登出日志进行分表
- 4.3
cloud-service-third
: 三方接口服务(统一调用第三方数据的服务) 5cloud-gateway
:统一网关层,鉴权限流都会在这步做,接口文档地址 - 6.1
GlobalRequestTimeFilter
:打印每个请求时间的耗时(生产可以加上配置,只打印耗时超过ms的请求) - 6.2
GlobalJWTFilter
:认证全局过滤器 - 6.2
GlobalAuthorityFilter
:鉴权全局过滤器 - 6.3
GlobalAuthInfoHeaderFilter
:认证信息header透传过滤器
- 如有问题可以提交issue
- 如有需要Dubbo项目,请点击Spring Boot + Dubbo