写这个项目的时候本来用来理清需求和思路, 后来稍微添了点就顺便出来一份规范点的易上手文档,仅供参考
存储技术文档后端项目:
你可能需要的文档:
- 补充后端基础知识
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 Boot Restful API介绍
- 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自带关键词查询方法