501 words
3 minutes
后端:上传文档项目
存储技术文档后端项目:
你可能需要的文档:
- 补充后端基础知识 https://youtu.be/XBu54nfzxAQ?si=0Ce6-dFM4nokSlwb
- (JWT入门)Spring Boot 如何集成JWT实现Token验证https://cloud.tencent.com/developer/article/2245008
- Spring Boot 零基础快速入门
https://kucw.io/blog/springboot/1/- Spring Boot Restful API介绍 https://kucw.io/blog/springboot/22/
- spring与数据库的交互方式 https://dimitri.codes/difference-spring-data-jdbc-jpa/
要求:
-
系统需求: 支持 Markdown 文件的上传、元数据存储以及权限化的访问管理
-
用户与权限: 支持基础的JWT认证, 角色权限可以分成User/Admin
-
文档管理:
- 用户可以上传 .md 文件:
-
文件大小限制在 5mb
-
支持分页查询
-
支持通过文件名模糊搜索, 查询返回文档元数据
-
后端需要读取 Markdown 的前 200 个字符作为“摘要”存入数据库字段。如果内容少于 10 个字符,视为无效文档,拒绝上传。此处考虑事务一致性
-
- 用户可以上传 .md 文件:
技术栈:
(maven) Spring Boot + Spring Data JPA + PostgreSQL
My solutions:
- 文档内容存文件,元数据存数据库
My steps:
-
实现上传md文件:
- 文件blobs与元数据commits分离
- 将commit类接入数据库表
- upload接口实现:
- 文件blob写入到后端文件夹
- 创建文件对应的元数据对象commit,然后把它写入数据库
-
实现JWT认证:
- 引入JWT依赖
- 生成Token
- 创建拦截器:解析验证Token (拦截器创建之后,需要将拦截器注册到Spring Boot中)
-
实现用户系统:
- 将User类接入数据库表
- 实现account接口:
- 登录接口:接受username, password参数, 比对数据库中的
- 注册接口:创建user类并写入数据库
- Others:
- 模糊搜索的实现使用Spring Data JPA自带关键词查询方法
notes!
- User类接入数据库表时不要用 user 当表名,user 为PostgreSQL 的关键字,替换表名使用@Table(name = “users”)
- 对于Spring Data JPA自带的Repository方法名,必须和实体字段名 一致(区分大小写) ex: Spring Data JPA自带关键词查询方法
后端:上传文档项目
https://www.modo.org.cn/posts/后端上传文档小项目/