# 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