WOOREAY

PKUTODO-Backend

1
Stars
0
Forks
Java
语言
创建:2024/10/10
更新:2025/11/3

PKUToDo后端部分

  开发工具、环境和技术栈都是目前用到的,后续可继续添加

开发工具

工具 版本 说明 官网
IDEA 2024.1.1 开发IDE https://www.jetbrains.com/idea/download
Navicat 17 数据库连接工具 https://www.navicat.com/en/download/navicat-for-mysql
maven 3.9.8 项目构建工具 http://maven.apache.org

开发环境

工具 版本号 下载
JDK 17 https://www.oracle.com/java/technologies/downloads/
MySQL 8.3 https://www.mysql.com/
Redis 5.0.1.14 https://redis.io/
Postman 11.18.0 https://www.postman.com/downloads/

技术栈

技术 说明 官网
SpringBoot Web应用开发框架 https://spring.io/projects/spring-boot
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatisGenerator 数据层代码生成器 http://www.mybatis.org/generator/index.html
Lombok Java语言增强库 https://github.com/rzwitserloot/lombok
JWT token生成和校验 https://jwt.io
SpringSecurity 安全框架 https://spring.io/projects/spring-security

项目结构

edu.pku.pkutodobackend
├── bo: 业务对象类,用于封装业务逻辑处理所需的数据
├── config: 配置类
├── controller: 控制器类,处理HTTP请求并将请求分发给相应的服务层处理
├── dao: 数据访问对象目录,用于存放与数据库交互的接口。用于较复杂的自定义查询
├── dto: 数据传输对象目录, 用户不同层之间的数据传输
├── enums: 枚举类型目录,存放枚举类型
├── filter: 过滤器类
├── mapper: 映射器目录,存放Mapper接口和SQL映射文件(resources/edu.pku.pkutodobackend.mapper),用于简单的单表查询
├── model: 模型类目录,通常存放实体类,即与数据库表结构对应的JavaBean
├── service: 业务逻辑层目录,存放实现业务逻辑的服务类
├── utils: 工具类目录
├── VO: 前端展示层实体类

Done

  • 根据openapi.yaml文档自动生成controller接口、Service接口、DTO类以及APIUtils工具类。

  原始生成命令mvn clean generate-sources将controller接口、delegate接口和APIUtils工具类全都放在了controller下,分层不够清晰,因此写了一个脚本(/document/api/gen.sh)将生成的文件放到各自应属的文件夹。在项目根目录下执行./document/api/gen.sh可生成层次更清晰的代码框架。

  • 实现/user接口
  • 初步跑通/events接口
  • 完成服务器部署

ToDo

  • 完善登录、注册、事件同步的详细设计文档
  • /events接口限流
  • 目前/events接口仅能跑通,不保证数据准确性,比如时间(LocalDate,LocalTime, OffsetDateTime等)、null值的传输问题需要解决
  • 简化EventUtil工具类
  • 因为要支持多设备,需要修改目前的登录和注册逻辑