# 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服务是否启动,用户名密码是否正确,数据库是否存在。
---