# snail-flex **Repository Path**: posjaj/snail-flex ## Basic Information - **Project Name**: snail-flex - **Description**: liteflow、dynamic-tp、easy-es等工具的集合 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2024-09-19 - **Last Updated**: 2025-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # snail-flex ### 一、介绍 1.liteflow、dynamic-tp、forest、mybatis-flex、Caffeine缓存、MapStructPlus、satoken、knife4j、x-file-storage等工具的集合,包含完整的RBAC权限控制的后端框架
2.支持mysql 和 h2两种数据库,h2的使用好处是可以直接java -jar启动项目,不依赖任何其他中间件
3.代码生成使用enjoy模板引擎,扩展了mybatis-flex的原有代码生成器,可以同时生成单元测试文件(包含增删改及分页,模拟数据使用JavaFaker生成)及.http文件,方便调试
4.各知识点原理拆分学习参考:https://gitee.com/posjaj/snail-pure ### 二、选择使用mysql数据库时 1.数据源选择mysql时,脚本初始化在 doc目录下,需要手动创建数据库并执行 2.此配置下默认使用redis作为缓存管理器,需要依赖redis ### 三、选择使用h2数据库时 1.数据源选择h2数据库时,脚本初始化在 resources/sql目录下,需要修改配置文件,开启spring.datasource.schema 配置,使用spring机制触发执行h2数据库的初始化 2.此配置下默认是用Caffeine缓存管理器 ### 四、包含的知识点 1.缓存工具接口IEasyCache 可以切换Redis缓存和JVM的Map内存缓存
2.ratelimit限流, 可以切换Redis和谷歌的GuavaRateLimiter, Redis限流使用lua脚本保证原子性
3.repeatsubmit防重复提交, 可以切换Redis和hutool的LFUCache
4.Forest - 声明式HTTP客户端框架,官网:https://forest.dtflyx.com/
5.Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案。官网:https://doc.xiaominfo.com/
6.liteflow - 轻量,快速,稳定可编排的组件式规则引擎。官网:https://liteflow.cc/
7.mybatis-flex - 轻量级orm框架,官网:https://mybatis-flex.com/
8.satoken - 轻量级的、简单易学的、方便扩展的权限认证框架。官网:https://sa-token.cc/
9.dynamic-tp - 轻量级动态线程池框架。官网:https://dynamictp.cn/
10.MapStructPlus - 可能是最简单最强大的Java Bean转换工具。官网:https://www.mapstruct.plus/
11.x-file-storage - 通用文件存储工具,同时支持阿里云、华为云、腾讯云等等。 官网:https://x-file-storage.xuyanwu.cn
12.Lock锁,包括Redis锁、使用JAVA的弱引用实现的细粒度锁(没有Redis环境下使用的)
13.代码生成器扩展了mybatis-flex的代码生成器,***crud单元测试文件也可以使用代码生成器生成***。 生成的单元测试文件所涉及到的数据使用JavaFaker模拟
### 其它 springboot版本:2.3.10.RELEASE
jdk版本:1.8
添加了hutool和lombok的依赖
repository配置了阿里云仓库地址
liteflow版本2.12.4