# HOT交通安全管理清单平台 后端服务

**项目概览**
- 基于 `Spring Boot 3.5.7`、`Java 17` 的后端服务，提供系统管理、代码生成、工作流等能力。
- 项目坐标：`com.hotwj:hot-platform:1.0.0`（pom.xml:15-17），构件名：`hot-backend`（pom.xml:18）。
- 默认打包为可执行 `jar`（build.finalName 为 `hot-platform`，pom.xml:409-411）。

**技术栈**
- Web与容器：`spring-boot-starter-web`（Undertow 容器，pom.xml:336-351），`spring-webmvc`（pom.xml:157-160）。
- ORM与数据源：`mybatis-plus`（pom.xml:162-175）、`dynamic-datasource`（pom.xml:232-237）。
- 安全与认证：`Sa-Token`（pom.xml:303-322），JWT 集成。
- 缓存与并发：`redisson`（pom.xml:284-289）、`lock4j`（pom.xml:291-295）、`caffeine`（pom.xml:297-301）。
- 文档与OpenAPI：`springdoc-openapi`（pom.xml:134-138、400-405）。
- 任务与调度：`snail-job` 客户端（pom.xml:192-203）。
- 工作流：`warm-flow`（pom.xml:377-386）。
- 存储与工具：`AWS S3 SDK`（pom.xml:246-282）、`hutool`（pom.xml:115-119）、`mapstruct-plus`（pom.xml:121-125）。
- 其他：`velocity` 模板引擎（pom.xml:358-363）、`ip2region`（pom.xml:127-132）、`JustAuth` 社交登录（pom.xml:330-334）、`jakarta.mail`（pom.xml:223-230）。

**环境要求**
- `JDK 17+`（pom.xml:26）。
- `Maven 3.9+`。
- 数据库：`MySQL 8.0.x`（pom.xml:58、72-77）。

**快速开始**
- 配置环境：`application.yml` 默认激活 `dev`（src/main/resources/application.yml:73）。
- 开发运行：
  - 使用 Maven 插件直接运行：`mvn spring-boot:run -Dspring-boot.run.profiles=dev`
  - 或打包运行：
    - `mvn clean package -DskipTests=true`
    - `java -jar target/hot-platform.jar --spring.profiles.active=dev`
- 生产运行：`java -jar target/hot-platform.jar --spring.profiles.active=prod`

**构建说明**
- 默认打包跳过测试（pom.xml:65-67），如需执行测试：`mvn clean package -DskipTests=false`。
- 生成的可执行包名为 `hot-platform.jar`（由 `finalName` 决定，pom.xml:409-411）。
- 支持 `spring-boot-maven-plugin` 重打包（pom.xml:412-422），可用 `spring-boot:run` 快速启动。

**配置要点**
- 端口与上下文：`server.port=8080`、`context-path=/`（src/main/resources/application.yml:3-7）。
- Undertow 线程与缓冲配置（src/main/resources/application.yml:8-21）。
- 日志：`logback-plus.xml`（src/main/resources/application.yml:43）。
- 国际化：`spring.messages.basename=i18n/messages`（src/main/resources/application.yml:69-71）。
- 模块扫描分组（系统/代码生成/工作流 等，src/main/resources/application.yml:211-216）。
- 安全与令牌：`sa-token`（src/main/resources/application.yml:98-108）。
- WebSocket/SSE：`sse.enabled`、`websocket.enabled`（src/main/resources/application.yml:239-259）。
- 工作流：`warm-flow.*`（src/main/resources/application.yml:260-275）。

**常用端点**
- Actuator 健康检查：`/actuator/health`（src/main/resources/application.yml:268-279）。
- OpenAPI 文档：`/v3/api-docs`，Swagger UI：`/swagger-ui/index.html`（由 springdoc 依赖启用，pom.xml:400-405）。

**Docker 运行**
- 项目提供 `Dockerfile`（Dockerfile:1-31），基础镜像为 `JDK 17`（Dockerfile:1）。
- 镜像构建前需确保 `target` 下存在打包产物。
- 当前 `Dockerfile` 的 `ADD` 指向 `ruoyi-admin.jar`（Dockerfile:17），如使用本项目构件，请将其改为 `hot-platform.jar` 或生成同名文件。

**常用命令**
- 清理并打包：`mvn clean package -DskipTests=true`
- 执行测试：`mvn test`
- 启动（开发）：`mvn spring-boot:run -Dspring-boot.run.profiles=dev`
- 启动（Jar）：`java -jar target/hot-platform.jar --spring.profiles.active=dev`


