# Common-Util **Repository Path**: xiaoxiaoi/common-util ## Basic Information - **Project Name**: Common-Util - **Description**: 通用工具模块 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-01-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JZO2O Framework ## 项目简介 Framework 是一个通用的基础框架项目,采用 Spring Boot、Spring Cloud Alibaba 等技术栈构建,提供了一系列开箱即用的基础组件和工具模块,用于快速开发微服务应用。 ## 技术栈 ### 核心框架 - **Spring Boot**: 2.7.10 - **Spring Cloud**: 2021.0.4 - **Spring Cloud Alibaba**: 2021.0.1.0 - **JDK**: 11 ### 主要依赖 - **MyBatis Plus**: 3.4.3 - ORM框架 - **Nacos**: 服务注册与配置中心 - **Redis/Redisson**: 3.17.7 - 分布式缓存与锁 - **Elasticsearch**: 7.17.7 - 搜索引擎 - **RabbitMQ**: 消息队列 - **Canal**: 1.1.5 - 数据同步 - **ShardingSphere**: 5.4.0 - 分库分表 - **Seata**: 1.5.2 - 分布式事务 - **Sentinel**: 1.8.5 - 流量控制与熔断降级 - **XXL-Job**: 2.3.0 - 分布式任务调度 - **Knife4j**: 接口文档 - **Hutool**: 5.7.18 - Java工具类库 ## 项目结构 ``` jzo2o-framework/ ├── jzo2o-parent/ # 父工程,统一管理依赖版本 ├── jzo2o-common/ # 通用工具模块 ├── jzo2o-mysql/ # MySQL集成模块(MyBatis Plus) ├── jzo2o-redis/ # Redis集成模块(Redisson) ├── jzo2o-es/ # Elasticsearch集成模块 ├── jzo2o-rabbitmq/ # RabbitMQ集成模块 ├── jzo2o-mvc/ # Spring MVC增强模块 ├── jzo2o-knife4j-web/ # Knife4j接口文档集成 ├── jzo2o-canal-sync/ # Canal数据同步模块 ├── jzo2o-shardingsphere-jdbc/ # ShardingSphere分库分表模块 ├── jzo2o-statemachine/ # 状态机模块 ├── jzo2o-seata/ # Seata分布式事务模块 ├── jzo2o-sentinel/ # Sentinel流量控制模块 ├── jzo2o-xxl-job/ # XXL-Job任务调度集成 └── jzo2o-thirdparty/ # 第三方服务集成模块 ``` ## 模块说明 ### 1. jzo2o-common(通用工具模块) 提供项目中常用的工具类、常量定义、异常处理等基础功能。 **主要功能:** - 常量定义(Redis、状态码、消息队列等) - 枚举类(启用状态、短信业务类型等) - 自定义异常体系 - 工具类(日期、JSON、JWT、字符串、集合等) - 统一结果封装 **核心工具类:** - `JsonUtils` - JSON序列化/反序列化 - `DateUtils` - 日期时间处理 - `JwtTool` - JWT令牌工具 - `BeanUtils` - Bean转换工具 - `IdUtils` - ID生成工具 - `LocationUtils` - 位置计算工具 ### 2. jzo2o-mysql(MySQL集成模块) 基于 MyBatis Plus 的数据库访问层封装。 **主要功能:** - MyBatis Plus 自动配置 - 分页插件集成 - 数据库字段填充拦截器 - 数据库操作工具类 ### 3. jzo2o-redis(Redis集成模块) 基于 Spring Data Redis 和 Redisson 的缓存与分布式锁解决方案。 **主要功能:** - Redis 序列化配置 - Redisson 分布式锁 - 缓存注解支持 - Redis工具类封装 - 缓存同步机制 ### 4. jzo2o-es(Elasticsearch集成模块) Elasticsearch 高级客户端集成,提供全文搜索能力。 **主要功能:** - Elasticsearch 客户端配置 - 索引管理 - 文档CRUD操作 - 复杂查询封装 ### 5. jzo2o-rabbitmq(RabbitMQ集成模块) RabbitMQ 消息队列集成,支持消息可靠性投递。 **主要功能:** - RabbitMQ 自动配置 - 消息发送与接收 - 消息可靠性保证 - 死信队列处理 ### 6. jzo2o-mvc(Spring MVC增强模块) Spring MVC 增强配置,提供统一的Web层处理。 **主要功能:** - 全局异常处理 - 请求日志记录 - 参数验证 - 跨域配置 - 序列化配置 ### 7. jzo2o-knife4j-web(接口文档模块) Knife4j(Swagger增强版)集成,提供美观的API文档界面。 **主要功能:** - Swagger配置 - 接口文档聚合 - 在线调试 ### 8. jzo2o-canal-sync(数据同步模块) 基于 Canal 的MySQL数据同步解决方案。 **主要功能:** - Canal 客户端集成 - 数据变更监听 - 数据同步处理 ### 9. jzo2o-shardingsphere-jdbc(分库分表模块) 基于 ShardingSphere JDBC 的分库分表解决方案。 **主要功能:** - 分库分表配置 - 读写分离 - 分布式主键 ### 10. jzo2o-statemachine(状态机模块) 基于 Spring State Machine 的状态机实现。 **主要功能:** - 状态机配置 - 状态转换管理 - 状态持久化(Redis) ### 11. jzo2o-seata(分布式事务模块) 基于 Seata 的分布式事务解决方案。 **主要功能:** - Seata AT模式配置 - 分布式事务管理 ### 12. jzo2o-sentinel(流量控制模块) 基于 Sentinel 的流量控制和熔断降级。 **主要功能:** - 流量控制 - 熔断降级 - 热点参数限流 - 系统自适应保护 ### 13. jzo2o-xxl-job(任务调度模块) XXL-Job 分布式任务调度集成。 **主要功能:** - XXL-Job 执行器配置 - 任务管理 ### 14. jzo2o-thirdparty(第三方服务模块) 第三方服务集成(如短信、支付等)。 ## 快速开始 ### 环境要求 - JDK 11+ - Maven 3.6+ - MySQL 5.7+ - Redis 5.0+ - RabbitMQ 3.8+(可选) - Elasticsearch 7.17+(可选) - Nacos 2.0+(可选) ### 构建项目 ```bash # 克隆项目 git clone [repository-url] # 进入项目目录 cd jzo2o-framework # 编译打包(跳过测试) mvn clean install -DskipTests ``` ### 使用示例 #### 1. 引入父POM 在项目的 `pom.xml` 中引入父POM: ```xml com.jzo2o jzo2o-parent 1.0-SNAPSHOT ``` #### 2. 使用通用工具模块 ```xml com.jzo2o jzo2o-common ``` ```java import com.jzo2o.common.utils.JsonUtils; import com.jzo2o.common.model.Result; // JSON工具使用 String json = JsonUtils.toJsonStr(object); Object obj = JsonUtils.toBean(json, Object.class); // 统一结果返回 return Result.ok(data); return Result.error("错误信息"); ``` #### 3. 使用Redis模块 ```xml com.jzo2o jzo2o-redis ``` ```java @Autowired private RedisTemplate redisTemplate; // 使用Redis redisTemplate.opsForValue().set("key", "value"); ``` #### 4. 使用MySQL模块 ```xml com.jzo2o jzo2o-mysql ``` ```java // 使用MyBatis Plus @Mapper public interface UserMapper extends BaseMapper { } ``` ## 配置说明 项目使用 Spring Boot 的配置方式,支持 `application.yml` 或 `application.properties`。 ### 基础配置示例 ```yaml spring: application: name: your-service-name # MySQL配置 datasource: url: jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=utf8 username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver # Redis配置 redis: host: localhost port: 6379 password: your_password database: 0 # Nacos配置 cloud: nacos: discovery: server-addr: localhost:8848 config: server-addr: localhost:8848 # MyBatis Plus配置 mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` ## 版本说明 当前版本:**1.0-SNAPSHOT** ### 版本规划 - 1.0.x:基础功能版本 - 1.1.x:功能增强版本 - 2.0.x:架构升级版本 ## 开发规范 ### 代码规范 - 遵循阿里巴巴Java开发手册 - 使用Lombok简化代码 - 统一使用SLF4J日志框架 ### 命名规范 - 包名:全小写,点分隔 - 类名:驼峰命名,首字母大写 - 方法名:驼峰命名,首字母小写 - 常量:全大写,下划线分隔 ### 注释规范 - 类注释:说明类的功能、作者、日期 - 方法注释:说明方法功能、参数、返回值 - 关键代码注释:解释复杂逻辑 ## 常见问题 ### 1. 依赖冲突问题 如果出现依赖冲突,请检查父POM中的版本管理,确保版本一致。 ### 2. Redis连接失败 检查Redis服务是否启动,配置的地址和端口是否正确。 ### 3. MySQL连接失败 检查MySQL服务是否启动,用户名密码是否正确,数据库是否存在。 ---