Files
Universal-IoT-Java/docker/DEPENDENCY_ANALYSIS.md
T
2025-10-29 21:32:25 +08:00

3.4 KiB
Raw Blame History

项目依赖分析报告

概述

基于你的项目 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

  1. Spring Boot 3.5.0: 原生支持 JDK 21
  2. Spring Framework 6.1.11: 支持 JDK 21
  3. Maven 编译插件: 已配置为 JDK 21
  4. 所有依赖: 都兼容 JDK 21

MySQL 5.8 兼容性

MySQL 5.8 完全兼容你的项目:

  1. 驱动版本: MySQL 8.0.33 驱动向下兼容 MySQL 5.8
  2. SQL 模式: 配置了兼容 MySQL 5.7 的 sql_mode
  3. 表名大小写: 支持忽略表名大小写
  4. 字符集: 支持 utf8mb4

EMQX 5.3 兼容性

EMQX 5.3 完全兼容:

  1. MQTT 协议: 标准 MQTT 3.1.1 和 5.0
  2. 认证方式: 支持用户名密码认证
  3. 主题管理: 支持通配符和共享订阅
  4. 集群支持: 支持高可用部署

📊 依赖版本详情

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 化部署,无需额外调整。