64 lines
3.7 KiB
Markdown
64 lines
3.7 KiB
Markdown
|
|
# 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`
|
|||
|
|
|
|||
|
|
|