Skip to content

ZhiQinIsZhen/cloud-springboot3

Repository files navigation

Spring Cloud Project By Jdk 21

Build Status License JDK Version Springboot Version Spring Cloud Gateway Version Springboot-Admin Version jjwt Version Mybatis-plus Version Sharding-jdbc Version Swagger Version Xxl-job Version Elasticjob Version

该项目基于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:监控中心

目录结构说明

  1. cloud-dependencies-bom:Maven Pom版本管理文件
  2. cloud-api:后置网关层,即真正的入口
  • 2.1 cloud-api-monitor : 监控平台 监控地址 监控中心 cloud-service-auth
  • 2.2 cloud-api-staff:员工服务业务网关层
  1. 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: 通用定时任务框架 4 cloud-service:Feign的服务提供者,即业务服务
  • 4.1 cloud-service-auth: 认证资源服务,基于SpringSecurity以及JWT
  • 4.2 cloud-service-staff: 员工信息服务
    4.2.1 使用shardingsphere-jdbc对登录登出日志进行分表
    
  • 4.3 cloud-service-third: 三方接口服务(统一调用第三方数据的服务) 5 cloud-gateway:统一网关层,鉴权限流都会在这步做,接口文档地址
  • 6.1 GlobalRequestTimeFilter:打印每个请求时间的耗时(生产可以加上配置,只打印耗时超过ms的请求)
  • 6.2 GlobalJWTFilter:认证全局过滤器
  • 6.2 GlobalAuthorityFilter:鉴权全局过滤器
  • 6.3 GlobalAuthInfoHeaderFilter:认证信息header透传过滤器 接口文档

开源共建

  1. 如有问题可以提交issue
  2. 如有需要Dubbo项目,请点击Spring Boot + Dubbo

About

一个基于jdk21+Cloud+Springboot3+Gateway+Security+Jwt的springcloud项目。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages