一个基于 Spring Boot 的期刊投稿与采编工作流系统。
- Java:JDK 25(LTS)
- Spring Boot:4.0.1
- 数据库:MySQL 9.5
- 角色与权限
- 统一用户表,支持作者/审稿专家/编辑角色,基于 JWT 做认证与授权
- 作者可升级为审稿专家,接口权限随角色变化
- 稿件工作流
- 支持 提交 → 初审 → 同行评审 → 修订 → ... -> 最终决定 → 出版 等多阶段流程
- 流程节点及状态可追踪,支持任务查询(作者待修订、审稿人待评审、编辑待处理)
- 稿件与附件
- 多附件上传与下载,白名单与大小限制可配置
- 统一作为附件持久化,上传失败与越权访问均有明确错误响应
- 接口与文档
- OpenAPI/Knife4j 文档,清晰示例展示
- MapStruct 映射 DTO/VO,PATCH 忽略空值避免误覆盖
- 安全与异常
- JWT 校验与签名错误处理,统一业务异常结构(ApiResponse)
- 基于角色的接口访问控制;文件类型与大小二次校验
- 工程与运维
- 可执行 jar 打包;配置项集中在 application.yml 并可外部化
- 存储目录与限制项可按环境调整
- 后端框架:Spring Boot(WebMVC、Security、Data JPA)
- 安全与认证:Spring Security + JWT
- 数据访问:Hibernate/JPA,MySQL 驱动
- 接口文档:springdoc-openapi + Knife4j(OpenAPI 3)
- 对象映射:MapStruct(DTO/VO 与实体转换)
- 构建工具:Maven(spring-boot-maven-plugin 可执行打包)
编辑 src/main/resources/application.yml:
spring.datasource.*:数据库连接jwt.secret:提供强度足够的密钥(生产环境使用外部化配置或环境变量)storage.*:upload-dir:默认uploadsmax-size-bytes:默认 10485760(10MB)allowed-types:例如application/pdf,image/png,image/jpeg,text/plain
springdoc/knife4j:已配置好 OpenAPI UI
- 构建:
mvn clean package- 运行:
java -jar target/journal-editorial-system-0.1.0.jar- 或者:
mvn spring-boot:run- Knife4j UI:
http://localhost:8080/doc.html
Apache License 2.0
- 0.1.0:首个预览版,实现稿件采编系统核心功能
- 0.1.1:修复了部分接口的逻辑和返回视图
- 0.2.0:新增电子邮件通知功能,通过事件监听器实现对作者、编辑、审稿人三方身份的任务、结果通知
- 0.3.0: 新增管理员用户和编辑部公告功能,管理员可发布公告,编辑部公告可通过公共接口展示