# fastboot-extensions **Repository Path**: fastboot_655354/fastboot-extensions ## Basic Information - **Project Name**: fastboot-extensions - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-04 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Fastboot Extensions Fastboot Extensions 是一个基于 Spring Boot 的功能扩展库集合,旨在为开发者提供一系列开箱即用的功能模块,提升开发效率并增强系统能力。 ## 功能模块 ### 基础模块 (fastboot-extensions-base) 提供通用的 Controller 和 Service 基类,支持基础的 CRUD 操作,减少重复代码编写。 **依赖:** fastboot-extensions-page **使用示例:** ```java // 1. 定义实体、请求和响应类 @Data @TableName("sys_user") public class User { @TableId(type = IdType.AUTO) private Long id; private String username; private String email; } @Data public class UserRequest { private Long id; @NotBlank(groups = Save.class) private String username; private String email; } @Data public class UserResponse { private Long id; private String username; private String email; } // 2. 创建 Mapper @Mapper public interface UserMapper extends BaseMapper { } // 3. 实现 Service @Service public class UserService extends BaseServiceImpl { protected final IUserRepository repository; @Override protected LambdaQueryWrapper buildQueryWrapper(UserRequest request) { return new LambdaQueryWrapper() .like(StringUtils.isNotBlank(request.getUsername()), User::getUsername, request.getUsername()); } } // 4. 实现 Controller @RestController @RequestMapping("/api/users") @RequiredArgsConstructor public class UserController extends BaseControllerImpl { protected final UserService service; } ``` **泛型参数:** `` (Controller) 或 `` (Service) ### 数据脱敏 (fastboot-extensions-datamask) 提供注解驱动的数据脱敏功能,支持基于角色和权限的脱敏控制,可扩展的脱敏策略类型。 ### 数据权限 (fastboot-extensions-datascope) 基于 AOP 实现的数据权限控制,支持自定义数据权限范围,集成 MyBatis Plus 实现动态 SQL 构建。 ### Excel 操作 (fastboot-extensions-easyexcel) 封装 EasyExcel 实现快速导入导出,支持多 Sheet 导出,提供数据校验和异常处理机制。 ### 数据加密 (fastboot-extensions-encrypt) 提供请求体解密和响应体加密功能,支持配置加密密钥,基于 Spring MVC 的全局控制器增强。 ### 实体缓存 (fastboot-extensions-entitycache) 提供基于 Redis 的实体缓存支持,自动监听数据变更事件更新缓存,减少数据库查询压力。 ### 扩展点 (fastboot-extensions-extpt) 支持动态扩展点生成,提供责任链模式的扩展处理机制,支持运行时动态加载扩展实现。 ### 流程引擎 (fastboot-extensions-flow) 支持 BPMN 流程解析与执行,提供流程定义、执行、表达式解析等功能,支持服务任务、调用活动、分支网关等流程元素。 ### 国际化 (fastboot-extensions-i18n) 基于 Redis 的多语言消息支持,提供自动的语言解析和切换拦截器,支持自定义消息源。 ### 防重复提交 (fastboot-extensions-idempotent) 提供注解驱动的防重提交控制,支持 Token 和 URL+数据 两种防重策略,基于 Redis 的提交状态存储。 ### 许可证验证 (fastboot-extensions-license) 提供基于注解的许可证校验切面,支持服务器信息采集与比对,支持缓存验证结果。 ### 日志记录 (fastboot-extensions-log) 提供操作日志记录功能,支持方法级注解日志记录,支持变更对比和异步日志发送。 ### 分页支持 (fastboot-extensions-page) 基于 MyBatis Plus 的分页拦截器,支持自动优化分页查询,提供分页工具类和上下文支持。 ### 短信服务 (fastboot-extensions-sms) 支持阿里云短信服务,提供策略模式的短信发送接口,支持配置化短信参数。 ### 多租户 (fastboot-extensions-tenant) 提供基于线程上下文的租户隔离,支持配置化租户字段和表,自动注入租户过滤条件。 ### 数据翻译 (fastboot-extensions-translation) 提供字段翻译注解,支持基于 Redis 的翻译缓存,自动发布翻译事件。 ### 异步事务 (fastboot-extensions-txasync) 提供注解驱动的异步任务执行,支持事务上下文传播,提供任务持久化和重试机制。 ## 快速开始 ### 环境要求 - JDK 17+ - Spring Boot 3.x - Gradle 8.x ### 安装依赖 在项目的 `build.gradle` 中添加对应模块依赖: ```groovy dependencies { // 单个模块引入示例 implementation 'com.wfcdev.fastboot:fastboot-extensions-datamask:latest.version' // 或者引入全部模块(如果需要) implementation 'com.wfcdev.fastboot:fastboot-extensions:latest.version' } ``` ## 配置说明 根据业务需求,在 `application.yml` 中配置对应模块参数: ```yaml fastboot: # 加密模块配置 encrypt: secret-key: your-secret-key public-key: your-public-key private-key: your-private-key # 扩展点模块配置 extpt: enabled: true definitions: - interfaceName: com.example.MyExtension beanName: myExtension type: 1 methods: - methodName: doSomething type: 1 stages: - stage1 - stage2 # 租户模块配置 tenant: enabled: true column: tenant_id tables: - sys_user - sys_role # 国际化配置 (需启用 Redis) i18n: enabled: true # 异步事务配置 tx-async: enabled: true ``` ## 使用指南 1. **引入模块**:根据功能需求在 `build.gradle` 中引入对应的 `fastboot-extensions-xxx` 模块。 2. **配置参数**:在 `application.yml` 中配置模块所需的参数。 3. **注解使用**: - 数据脱敏:使用 `@DataMask` 注解标记敏感字段。 - 数据权限:使用 `@DScope` 注解标记需要权限控制的方法。 - 日志记录:使用 `@Log` 注解标记需要记录日志的方法。 - 防重复提交:使用 `@RepeatSubmit` 注解标记需要防重的方法。 - 流程引擎:配置 BPMN 文件并通过 `BpmnProcessExecutor` 启动流程。 4. **API 调用**:部分模块提供了工具类或服务类,可直接注入 Spring 容器使用。 ## 许可证 本项目采用 Apache-2.0 许可证。详见 [LICENSE](LICENSE) 文件。 ## 贡献指南 欢迎贡献代码和文档。请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 联系方式 如有问题,请提交 Issue 或联系项目维护者。