简介

yutool是一款组件式集成开发框架,提供了许多为了解决实际后端web服务问题的一些通用设计及其实现,开箱即用,按需整合。

模块划分

yutool的模块主要分为两大部分:组件和插件。以下是其主要特点和当前已整合的组件和插件清单。部分组件和插件的设计思路可参考博客《基础组件设计》

  • 组件:将业务系统中比较复杂的公共逻辑抽象成可扩展的公共组件,方便应用程序快速接入,约定大于配置,使用时需要遵循组件的设计规范。
  • 插件:轻量级,非必需,按需引入,灵活可扩展。

组件

组件 名称 主要特性 完成度
yutool-cache 缓存组件 支持二级缓存(本地缓存和分布式缓存),通过缓存注解控制缓存的刷新和过期
yutool-file-server 文件服务 文件的上传下载,支持租户隔离、防盗链
yutool-ldap LDAP组件 主流的LDAP服务接入
yutool-mq 消息组件 消息队列,支持延迟队列、重试队列(目前仅支持RabbitMQ)
yutool-orm ORM组件 整合了Spirng生态主流的Mybatis Plus和JPA框架,并加入了实际场景中DO、DTO和VO等POJO对象的转换及处理逻辑
yutool-push 推送组件 支持5种类型消息的推送:
● 移动APP通知
● Web网页消息
● sms短信
● Email电子邮件
● IM消息
通过同一的消息发送入口,按需路由到指定的消息渠道进行消息推送
yutool-social 第三方登录组件 社交账号登录(第三方登录)组件,整合各大主流社交平台第三方登录功能并统一入口
yutool-state 状态机引擎 抽象主要的状态机应用场景,将状态机状态迁移的整个过程的处理接口标准化
yutool-search 搜索引擎组件 基于redisearch开发的轻量级搜索引擎组件,支持中文分词

插件

插件 名称 主要特性 完成度
api-idempotent 接口幂等插件 接口幂等检查,基于MySQL数据库主键的幂等性校验
api-logger 接口访问日志插件 接口请求日志,记录接口请求的各项信息
audit-logger 审计日志插件 审计日志,字段维度的审计处理记录
auth-filter 权限过滤插件 权限过滤,用户、角色、部门多维度权限过滤,扩展的自定义权限过滤接口
distributed-lock 分布式锁插件 分布式锁(基于Redis和Zookeeper实现)
history-data 历史数据处理插件 历史数据清理,通过配置项实现历史数据的清除或转移
jwt-helper JWT工具插件 JWT工具
native-mobile 本机号码登录插件 实现本机号码登录
sms-reply-storage 短信回复内容存储插件 短信回复存储,用于向用户推送服务短信之后,接收并存储用户回复的短信内容
sms-verify 短信验证码插件 短信验证码的发送及验证,不限制验证码的长度
swagger-support Swagger接口文档插件 swagger接口文档支持,使用配置代替硬编码实现swagger文档的接入和分组功能
import-export 数据导入导出插件 数据导入导出插件,基于EasyExcel实现
multi-ds-tx 多数据源事务插件 多数据源事务控制插件,抽取dynamic-datasource本地事务控制核心代码二次封装进行实现
dynamic-thread-pool 动态线程池管理插件 动态线程池参数调优,监控线程池运行状态