包結構 概述
可以將所有的包分為三層:
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