README.md 6.2 KB

图书阅读系统后端项目

项目结构

book/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/yu/book/
│       │       ├── BookApplication.java          # 启动类
│       │       ├── controller/                   # 控制层
│       │       │   ├── UserController.java       # 用户控制器
│       │       │   └── BookController.java       # 书籍控制器
│       │       ├── service/                      # 服务层
│       │       │   ├── UserService.java          # 用户服务
│       │       │   └── BookService.java         # 书籍服务
│       │       ├── mapper/                       # 数据访问层
│       │       │   ├── UserMapper.java           # 用户Mapper接口
│       │       │   ├── BookMapper.java           # 书籍Mapper接口
│       │       │   └── CategoryMapper.java       # 分类Mapper接口
│       │       ├── domain/                        # 实体类(领域模型)
│       │       │   ├── User.java                 # 用户实体
│       │       │   ├── Book.java                  # 书籍实体
│       │       │   └── Category.java             # 分类实体
│       │       ├── dto/                           # 数据传输对象
│       │       │   ├── LoginDTO.java             # 登录DTO
│       │       │   ├── RegisterDTO.java         # 注册DTO
│       │       │   └── BookDTO.java              # 书籍DTO
│       │       ├── vo/                            # 视图对象
│       │       │   ├── UserVO.java               # 用户VO
│       │       │   ├── BookVO.java               # 书籍VO
│       │       │   └── LoginVO.java              # 登录VO
│       │       ├── common/                        # 通用类
│       │       │   ├── Result.java               # 统一响应结果
│       │       │   └── PageResult.java           # 分页结果
│       │       ├── util/                          # 工具类
│       │       │   └── PasswordUtil.java         # 密码工具类
│       │       └── exception/                     # 异常处理
│       │           └── GlobalExceptionHandler.java # 全局异常处理器
│       └── resources/
│           ├── application.properties           # 配置文件
│           ├── mapper/                            # MyBatis XML映射文件
│           │   ├── UserMapper.xml
│           │   ├── BookMapper.xml
│           │   └── CategoryMapper.xml
│           └── db/
│               └── schema.sql                     # 数据库初始化脚本
├── pom.xml                                        # Maven配置文件
├── API_DOCUMENTATION.md                           # API接口文档
└── README.md                                      # 项目说明文档

技术栈

  • Spring Boot: 2.7.18
  • MyBatis: 2.3.1
  • MySQL: 5.7+ / 8.0+
  • Java: 8
  • Lombok: 简化代码

功能特性

1. 用户管理

  • ✅ 用户注册
  • ✅ 用户登录
  • ✅ 用户信息查询

2. 书籍管理

  • ✅ 分页查询书籍(支持关键词搜索、分类筛选、状态筛选)
  • ✅ 根据ID查询书籍详情
  • ✅ 创建书籍
  • ✅ 更新书籍
  • ✅ 删除书籍
  • ✅ 批量删除书籍

快速开始

1. 环境要求

  • JDK 8+
  • Maven 3.6+
  • MySQL 5.7+ / 8.0+

2. 数据库配置

  1. 创建MySQL数据库,执行 src/main/resources/db/schema.sql 文件
  2. 修改 src/main/resources/application.properties 中的数据库连接信息:

    spring.datasource.url=jdbc:mysql://localhost:3306/books_db?...
    spring.datasource.username=root
    spring.datasource.password=root
    

3. 启动项目

# 使用Maven启动
mvn spring-boot:run

# 或者打包后运行
mvn clean package
java -jar target/book-0.0.1-SNAPSHOT.jar

4. 访问接口

项目启动后,访问地址:http://localhost:8080

API接口

详细API文档请参考 API_DOCUMENTATION.md

主要接口

  • 用户注册: POST /api/user/register
  • 用户登录: POST /api/user/login
  • 查询用户: GET /api/user/{id}
  • 分页查询书籍: GET /api/book/list
  • 查询书籍详情: GET /api/book/{id}
  • 创建书籍: POST /api/book
  • 更新书籍: PUT /api/book/{id}
  • 删除书籍: DELETE /api/book/{id}
  • 批量删除书籍: DELETE /api/book/batch

包结构说明

controller(控制层)

处理HTTP请求,调用Service层处理业务逻辑,返回响应结果。

service(服务层)

实现业务逻辑,调用Mapper层进行数据操作。

mapper(数据访问层)

MyBatis的Mapper接口,定义数据操作方法。

domain(领域模型)

实体类,对应数据库表结构。

dto(数据传输对象)

用于接收前端请求参数的对象。

vo(视图对象)

用于返回给前端的数据对象。

common(通用类)

统一的响应结果封装类。

util(工具类)

通用工具方法。

exception(异常处理)

全局异常处理器。

开发规范

  1. 包命名规范: 所有包名使用小写字母,多个单词使用点分隔
  2. 类命名规范: 使用大驼峰命名(PascalCase)
  3. 方法命名规范: 使用小驼峰命名(camelCase)
  4. 注释规范: 所有类和方法都应有JavaDoc注释
  5. 异常处理: 使用全局异常处理器统一处理异常
  6. 响应格式: 统一使用Result类封装响应结果

注意事项

  1. 密码加密使用MD5(简单示例),生产环境建议使用BCrypt
  2. Token目前是模拟实现,生产环境建议使用JWT
  3. 已配置跨域支持,允许所有来源的请求
  4. 数据库字段使用下划线命名,Java实体使用驼峰命名,MyBatis会自动映射

后续扩展

  • JWT Token认证
  • 权限管理
  • 文件上传(书籍封面)
  • 缓存支持(Redis)
  • 日志记录
  • 单元测试