JavaProjectRepo/framework/docs/技术文档.md

5.9 KiB
Raw Blame History

项目技术文档

项目ProjectFrameWork2025模块app / Java 后端) 运行环境WindowsJava 21兼容 17+Spring Boot 3.x

概述

  • 平台型后端服务,采用 Spring Boot 3.x,区分 dev / server 两种运行配置。
  • 数据访问使用 MyBatis-Plus 3.5.6MyBatis 3.5.16,连接池为 Druid
  • 任务调度使用 Quartz 2.3.2API 文档采用 springdoc-openapi / Swagger UI。
  • 支持 WAR 包运行,亦可容器化部署;默认开发端口 8093server 可使用 8090)。

目录结构

  • 仓库根(当前工作目录):D:\Trae_space\ProjectFrameWork2025\app
  • 主要结构:
app/
├── .gitignore
├── Dockerfile
├── frontend/                 # 前端说明或资源
│   └── readme.md
├── pom.xml                   # Maven 构建管理
└── src/
    ├── main/
    │   ├── java/             # 业务代码(入口类在 com.yfd.platform.*
    │   └── resources/        # 配置与静态资源
    └── test/
        └── java/             # 测试代码

快速开始

  • 前置要求:
    • 安装 JDK 21(兼容 17+Maven 3.9+Git
    • Windows 终端执行 chcp 65001,确保 UTF-8 编码输出。
  • 构建后端:
    • mvn clean package -DskipTests
  • 本地运行dev
    • java -jar target/platform-1.0.war --spring.profiles.active=dev
  • 运行server
    • java -jar target/platform-1.0.war --spring.profiles.active=server
  • API 文档:
    • 默认访问 http://localhost:8093/swagger-ui/index.html(以实际配置为准)

配置说明

  • Profile 切换:
    • 通过 --spring.profiles.active=<dev|server> 激活环境。
  • 关键属性:
    • file-space.system:文件根路径,需在激活的 profile 中配置。
    • spring.datasource.druid.*:数据库连接参数与池化配置。
    • server.port:端口(dev 默认 8093server 可使用 8090
  • VS Code/终端编码建议:
    • 启动参数加入 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
    • 终端执行 chcp 65001PowerShell 输出设置为 UTF-8。

依赖与版本

  • Spring Boot 3.x
  • MyBatis-Plus 3.5.6(依赖 MyBatis 3.5.16+,需有 Configuration.parsePendingResultMaps(boolean)
  • Druid 数据源
  • Quartz 2.3.2
  • springdoc-openapi / Swagger UI
  • 日志:LogbackUTF-8 输出,logback-spring.xml

数据库配置

  • MySQL 连接示例:
spring:
  datasource:
    druid:
      master:
        url: jdbc:mysql://<host>:3306/<db>?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&useSSL=false&allowPublicKeyRetrieval=true
        username: <user>
        password: <password>
  • 远程授权建议:
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON <db>.* TO 'appuser'@'%';
FLUSH PRIVILEGES;
  • Druid 健壮性:
spring:
  datasource:
    druid:
      initial-size: 0
      test-on-borrow: false
      test-while-idle: true
      validation-query: SELECT 1

日志

  • 控制台与文件统一 UTF-8 输出:
    • 控制台 ConsoleAppender,文件 RollingFileAppender(按日滚动,保留 30 天)。
    • 推荐日志格式:%d [%thread] %-5level %logger{50} - %msg%n

定时任务

  • 默认 RAMJobStore(非集群、内存存储)。
  • 如需持久化与集群,改用 JdbcJobStore 并配置数据源与表结构。

安全与鉴权

  • 使用 JWT 过滤器进行鉴权(如 jwtAuthenticationTokenFilter)。
  • 敏感配置(jwt.secret、数据库密码)建议通过环境变量或外部密钥管理。
  • 生产环境必须启用 HTTPS 并使用强密钥。

API 文档

  • 启用 swagger-ui.enabled: true
  • 访问路径通常为 http://<host>:<port>/swagger-ui/index.html

Docker 部署

  • Dockerfile 已暴露端口 8093
    • 构建镜像:docker build -t projectframework2025-app:latest .
    • 运行(开发环境):
      • docker run -d --name platform-app -p 8093:8093 -e SPRING_PROFILES_ACTIVE=dev projectframework2025-app:latest
    • 运行(服务器环境):
      • docker run -d --name platform-app -p 8090:8090 -e SPRING_PROFILES_ACTIVE=server projectframework2025-app:latest
  • 如需挂载文件空间:
    • -v D:/data/file-space:/data/file-space -e FILE_SPACE_SYSTEM=/data/file-space

前端

  • 前端说明见 frontend/readme.md。如需联调,请统一跨域与鉴权策略。

Git 使用

  • 远程仓库:http://121.37.111.42:3000/ThbTech/ProjectFrameWork2025.git
  • 主分支:main
  • 常用命令:
    • git pullgit add .git commit -m "<message>"git push
  • 提交署名:
    • git config user.name "<Your Name>"
    • git config user.email "<your@email>"

常见问题

  • 中文乱码:
    • 执行 chcp 65001,确保 logback-spring.xml 使用 UTF-8。
  • NoSuchMethodErrorMyBatis
    • 升级 MyBatis3.5.16+ 并与 MP 版本匹配。
  • 数据库 Access denied
    • 校验账户密码与远程授权;必要时新建业务账户并放开 3306
  • 端口占用/启动失败:
    • 检查 server.port 与冲突端口;查看应用日志定位根因。

运维与监控

  • 建议接入 Spring Boot Actuator/actuator/health
  • 配合日志轮转与集中采集ELK/Vector区分环境日志路径。
  • 监控数据库与线程池指标Druid/Quartz

CI/CD 建议

  • 在 CI 阶段执行:
    • mvn -B -DskipTests clean package
    • 单元测试与安全扫描(依赖检查、代码质量)
  • 在 CD 阶段:
    • 推送镜像到私有仓库,环境变量注入敏感信息。

变更日志(示例模板)

  • feat: 新增功能说明
  • fix: 缺陷修复说明
  • docs: 文档更新说明
  • refactor: 重构说明
  • perf: 性能优化说明

如需扩展专题文档(接口规范、部署拓扑、参数字典等),建议在 docs/ 目录继续维护并与版本管理同步。