包结构
概述
可以将所有的包分为三层:
1、官方框架层:基于官方框架的使用配置及功能扩展
2、框架特性层:自身框架特性的实现
3、业务层:业务实现
官方框架层
● starter-redis
1、提供微服务二级缓存(RedisAutoCacheManager)
2、提供分布式锁
3、提供分布式限流
4、序列化配置
● starter-mongo
1、Converter配置:数据库对象——>Json,Json——>文档等
● starter-mybatis
1、Mybatis配置:实体/Mapper包路径、驼峰、主键策略、逻辑删除
2、BaseEntity、BaseService、BladeMapper、BaseEntityWrapper
3、各种拦截器配置:租户拦截器、分页拦截器、日志拦截器、自定义拦截器、查询拦截器(框架实现了动态数据权限)
4、Wapper解析器:Condition、Query
● starter-trancaction
1、配置Seata分布式事务
● starter-swagger
1、swagger配置
2、引入后自动暴露/v2/api-docs接口,提供接口文档数据
● starter-report
1、集成ureport2报表引擎
● starter-oss
1、集成阿里OSS、华为Obs、MinIO、七牛、腾讯Cos
● starter-excel
1、集成easyexcel
2、提供Excel导入导出功能
● starter-sms
1、集成阿里、七牛、腾讯、云片
● starter-http
1、集成okhttp、jsoup
2、提供Http异步调用支持
3、提供Html解析
4、提供http代理
● starter-api-crypto
1、提供API报文加解密
● starter-jwt
1、集成并配置JWT
● starter-social
1、集成JustAuth实现第三方平台登录
● starter-actuate
1、没什么用
● starter-metrics
1、集成prometheus、sentinel
● starter-prometheus
1、配置Prometheus
● starter-log
1、ServiceException
2、基于SpringEvent模型提供日志记录
3、自动记录错误日志,注解记录接口日志,手动记录程序日志
4、提供ELK支持
● starter-ehcache
1、集成ehcache并配置提供一级缓存
● starter-cache
1、基于CacheManager(RedisAutoCacheManager实现)提供CacheUtil工具类
● starter-ribbon
1、集成ribbon提供负载均衡功能
● starter-trace
1、集成zipkin提供链路追踪功能
框架特性层
● bom
1、集成Spring IO Platform管理版本依赖
● core-auto
1、通过动态生成SPI文件以注解的方式来代替传统的SPI(还是通过ServiceLoader.load(LauncherService.class))
2、@AutoService
● core-boot
1、自定义线程池并注入到容器中:TaskExecutor、TaskScheduler
2、提供基础控制器:BladeController
3、提供文件/附件工具及配置(上传、下载等)
4、全局Request包装、过滤(无实际功能)
5、提供Xss防注入
● core-cloud
1、集成Hystrix、Feign、Sentinel并配置
2、解决Hystrix传递ThreaLocal上下文的问题
3、配置RestTemplate/LoadbalanceRestTemplate
4、配置Undertow
5、提供URL版本号和API版本号支持
● core-context
1、提供包括请求信息的线程上下文BladeContext、BladeHttpHeadersGetter(现有功能与starter-auth有交叉)
● core-launch
1、自定义启动器,用于指定各种启动参数:BladeApplication、LauncherService
2、定义各种常量:包名、应用名、服务名
3、定义nacos的IP、端口等(未使用)
● core-db
1、引入各种数据库驱动并配置基础配置文件
● core-secure
1、为各微服务提供接口权限校验(默认关闭,鉴权走网关)
● core-test
1、单元测试:主要解决自定义启动器设置环境变量导致自带的单元测试失效的问题
● core-log4j2
1、将System.out替换为log
2、提供log.xml配置文件
● core-tool
1、接口回参封装对象:R
2、各种Bean工具
3、提供Jackson工具及配置
4、spel工具
5、各种其他工具
● starter-develop
1、代码生成工具
● starter-datascope
1、基于Mybatis拦截器提供动态数据权限功能
● starter-auth
1、提供AuthUtil,从请求中获取各种用户信息
● starter-tenant
1、基于Mybatis-Plus的多租户特性提供租户动态数据源支持
业务层
● gateway
1、基于spring-cloud-gateway和nacos提供动态网关路由
2、提供请求鉴权
● auth
1、基于oauth提供登录验证码生成/校验、登录授权、第三方登录授权、登出
● common
1、定义nacos、sentinel、seata、zipkin、elk的IP、端口等
● ops
swagger
swagger聚合文档,只运行一个前端页面,用于接入各服务的接口文档数据
xxljob
turbine
resource
log
develop
gen
flow-design
flow
report
admin
● service
user
desk
system
business
● plugin
● ops-api
● service-api
● plugin-api