5.9 KiB
5.9 KiB
项目技术文档
项目:ProjectFrameWork2025(模块:
app/ Java 后端) 运行环境:Windows,Java 21(兼容 17+),Spring Boot 3.x
概述
- 平台型后端服务,采用
Spring Boot 3.x,区分dev/server两种运行配置。 - 数据访问使用
MyBatis-Plus 3.5.6与MyBatis 3.5.16,连接池为Druid。 - 任务调度使用
Quartz 2.3.2;API 文档采用springdoc-openapi/ Swagger UI。 - 支持 WAR 包运行,亦可容器化部署;默认开发端口
8093(server可使用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默认 8093,server可使用 8090)。
- VS Code/终端编码建议:
- 启动参数加入
-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8。 - 终端执行
chcp 65001,PowerShell 输出设置为 UTF-8。
- 启动参数加入
依赖与版本
Spring Boot 3.xMyBatis-Plus 3.5.6(依赖MyBatis 3.5.16+,需有Configuration.parsePendingResultMaps(boolean))Druid数据源Quartz 2.3.2springdoc-openapi/ Swagger UI- 日志:
Logback(UTF-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 pull、git 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。
- 执行
NoSuchMethodError(MyBatis):- 升级
MyBatis至3.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/ 目录继续维护并与版本管理同步。