mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-09-19 05:00:34 +08:00
3.4 KiB
3.4 KiB
项目依赖分析报告
概述
基于你的项目 POM 文件分析,以下是详细的依赖情况和兼容性分析。
🚀 核心技术栈
Java 环境
- JDK 版本: 21 ✅
- Spring Boot: 3.5.0 ✅
- Spring Framework: 6.1.11 ✅
- Java 编译版本: 21 ✅
数据库相关
- MySQL 驱动: 8.0.33 ✅
- 数据库连接池: Druid 1.2.25 ✅
- ORM 框架: tk.mybatis 5.0.1 ✅
- 分页插件: PageHelper 2.1.1 ✅
缓存和消息
- Redis 客户端: Lettuce ✅
- 连接池: Commons Pool2 ✅
- MQTT: 支持 EMQX 5.3 ✅
- 消息队列: Apache Pulsar ✅
Web 和 API
- Web 服务器: Undertow (替代 Tomcat) ✅
- API 文档: Knife4j 4.3.0 + SpringDoc 2.5.0 ✅
- 安全框架: Spring Security OAuth2 ✅
- 验证框架: Spring Boot Validation ✅
工具库
- 工具库: Hutool 5.8.30 ✅
- JSON 处理: Jackson ✅
- JWT: jjwt 0.11.5 ✅
- 日志: Logback 1.5.11 ✅
🔍 兼容性分析
JDK 21 兼容性 ✅
你的项目完全兼容 JDK 21:
- Spring Boot 3.5.0: 原生支持 JDK 21
- Spring Framework 6.1.11: 支持 JDK 21
- Maven 编译插件: 已配置为 JDK 21
- 所有依赖: 都兼容 JDK 21
MySQL 5.8 兼容性 ✅
MySQL 5.8 完全兼容你的项目:
- 驱动版本: MySQL 8.0.33 驱动向下兼容 MySQL 5.8
- SQL 模式: 配置了兼容 MySQL 5.7 的 sql_mode
- 表名大小写: 支持忽略表名大小写
- 字符集: 支持 utf8mb4
EMQX 5.3 兼容性 ✅
EMQX 5.3 完全兼容:
- MQTT 协议: 标准 MQTT 3.1.1 和 5.0
- 认证方式: 支持用户名密码认证
- 主题管理: 支持通配符和共享订阅
- 集群支持: 支持高可用部署
📊 依赖版本详情
Spring Boot 生态
Spring Boot: 3.5.0
Spring Framework: 6.1.11
Spring Security: 6.x
Spring Data: 3.x
数据库生态
MySQL Driver: 8.0.33
Druid: 1.2.25
tk.mybatis: 5.0.1
PageHelper: 2.1.1
缓存和消息
Redis: Lettuce (Spring Boot 3.x 默认)
MQTT: EMQX 5.3
Apache Pulsar: 最新版本
工具库
Hutool: 5.8.30
Logback: 1.5.11
Jackson: Spring Boot 3.x 默认
JWT: 0.11.5
⚠️ 注意事项
1. 数据库配置
- 使用
useSSL=false避免 MySQL 5.8 SSL 问题 - 添加
allowPublicKeyRetrieval=true支持新认证方式 - 配置
nullCatalogMeansCurrent=true兼容旧版本
2. 字符集配置
- 统一使用
utf8mb4字符集 - 支持 emoji 和特殊字符
- 兼容 MySQL 5.8 的字符集设置
3. SQL 模式
- 配置兼容 MySQL 5.7 的 sql_mode
- 支持严格模式但保持兼容性
- 忽略表名大小写
🚀 部署建议
1. Docker 环境
- 使用 JDK 21 基础镜像
- MySQL 5.8 容器配置
- EMQX 5.3 消息队列
- Redis 7.x 缓存服务
2. 生产环境
- 配置数据库连接池参数
- 设置合适的 JVM 参数
- 配置日志轮转和监控
- 设置健康检查端点
3. 性能优化
- 数据库索引优化
- Redis 连接池配置
- MQTT 主题优化
- JVM 内存调优
📋 总结
你的项目依赖配置非常合理:
✅ JDK 21: 完全支持,性能优秀 ✅ MySQL 5.8: 完全兼容,配置优化 ✅ EMQX 5.3: 完全支持,功能丰富 ✅ Spring Boot 3.5.0: 最新稳定版本 ✅ 所有依赖: 版本兼容,无冲突
建议直接使用当前的依赖配置进行 Docker 化部署,无需额外调整。