# framework **Repository Path**: clark2020/framework ## Basic Information - **Project Name**: framework - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-01-18 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: 分布式有序队列redislua实现, 并发编程, mysql增强, mongo增强, 优雅编程-设计模式 ## README [![Security Status](https://www.murphysec.com/platform3/v31/badge/1746647309255081984.svg)](https://www.murphysec.com/console/report/1746647309213138945/1746647309255081984) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) # Framework 基于 Spring Boot 的 Java 通用开发框架,沉淀多年编程经验,提供公共模型、数据库访问、并发处理、优雅编码等开箱即用的通用能力模块。 ## 技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Java | 1.8 | 运行环境 | | Spring Boot | 2.1.3 | 基础框架 | | Commons Lang3 | 3.8.1 | 通用工具库 | | Lombok | 1.18.6 | 代码简化 | | Fastjson | 1.2.83 | JSON 处理 | | Log4j2 | 2.17.0 | 日志框架 | ## 模块总览 ``` framework (parent) ├── common-pojo # 公共实体与常量 ├── common-tools # 通用工具集 ├── concurrent # 并发与分布式队列 ├── graceful-design # 优雅编码设计 ├── mongo-common # MongoDB 通用 DAO ├── mysql-common # MySQL 通用 DAO ``` ## 模块说明 ### common-pojo — 公共实体与常量 提供跨模块复用的公共实体模型和常量定义,零外部依赖。 - **pojo**:`ConditionVo`(通用条件)、`PagerConditionVo`(分页条件)、`Pagination`(分页结果)、`GroupCountConditionVo`、`SumConditionVo` - **constant**:`DataType`(数据类型)、`DateConstant`(日期常量)、`OperateType`(操作类型) ### common-tools — 通用工具集 提供项目级通用工具类,零外部依赖。 - **CSVUtil / CSVBaseDataRead**:CSV 文件读取与解析 - **FileUtil**:文件操作工具 - **SnowflakeIDGenerator**:雪花算法分布式 ID 生成器 ### concurrent — 并发与分布式队列 提供并发处理、分布式锁、线程池及分布式有序队列等能力,核心基于 Redis + Lua 实现。 - **consumer**:并发消费框架(`AbstractConcurrentHandleConsumer`、`ConcurrentConsumerRegisterFactory`) - **lock**:分布式锁(`RedisDistributeLock`)、并发安全执行器(`ConcurrentSafeExecutor`) - **pool**:并发阻塞线程池(`ConcurrentBlockingThreadPool`) - **queue**:分布式路由队列 - `DistributeRouteRedisLuaQueue`:基于 Redis + Lua 的分布式有序队列,支持机器注册、心跳检测、队列动态分配与均衡 - `AbstractDistributeRouteQueuePopHandle`:队列消费抽象类 - `DRQMonitorServlet`:队列监控 HTTP Servlet - 内置 Lua 脚本实现队列初始化、机器注册、心跳、调度分配、重置等原子操作 > 详细的分布式队列配置与数据结构说明,请参阅 [concurrent/README.md](concurrent/README.md) ### graceful-design — 优雅编码设计 提供代码解耦、非侵入式日志等优雅编码能力的通用模块。 - **dynamicsql**:基于 SQL 模板生成动态 SQL(`DynamicSqlTemplateUtil`),支持脚本化 SQL 构建 - **printlog**:`@PrintAopLog` 注解,对标注方法自动执行入参/出参日志打印,零侵入 - **strategy**:`@SelectSpecificService` 注解,根据注解路由不同方法实现,解耦业务代码 ### mongo-common — MongoDB 通用 DAO 提供通用的标准入参转 MongoDB 标准 DML 执行公共模块。 - **MongoBaseDao**:通用 DAO 基类,封装常用操作 - 标准 select:单条、多条、分页查询 - 标准 DML:insert、update、delete - 聚合查询:指定字段聚合、sum 聚合等 - **BaseDoc**:MongoDB 文档基类 - **MongoAutoConfiguration**:MongoDB 自动配置 > 详细的 MongoDB 数据源配置说明,请参阅 [mongo-common/README.md](mongo-common/README.md) ### mysql-common — MySQL 通用 DAO 提供通用的标准入参转 MySQL 标准 DML 执行公共模块。 - **SqlBaseDao**:通用 DAO 基类,封装常用操作 - 标准 select:单条、多条、分页查询 - 标准 DML:insert、update、delete - 指定字段聚合查询 - **@DBMapper**:表名与字段映射注解,支持日期格式转换 - **JdbcTemplateConfig**:数据源配置示例 - 支持 `dynamic-datasource-spring-boot-starter` 多数据源切换(`@DS` 注解或手动注入 `JdbcTemplate`) - **utils**:`SQLGenerateUtil`(SQL 生成)、`MapUtils`(Map 工具) - **exception**:动态 SQL 相关异常定义 > 详细的 MySQL 数据源配置与使用说明,请参阅 [mysql-common/README.md](mysql-common/README.md) ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.x - Redis(concurrent 模块需要) - MongoDB / MySQL(对应模块需要) ### 构建 ```bash mvn clean install ``` ### 引入依赖 在项目 `pom.xml` 中按需引入对应模块: ```xml cn.xu.framework common-pojo 1.0.1-SNAPSHOT ``` 可替换 `artifactId` 为:`common-tools`、`concurrent`、`graceful-design`、`mongo-common`、`mysql-common` ## 开源许可 本项目基于 [Apache License 2.0](LICENSE) 开源。 ## 联系方式 - **Author**:Clark Xu - **Email**:clark2021@qq.com / clarkxu0520@sina.cn > 如有任何问题或建议,欢迎联系交流!