项目概述

这是一个基于 Spring Boot 2.2.2 构建的网上书城系统,采用经典的 SSM(Spring + SpringMVC + MyBatis Plus) 架构模式,实现了完整的图书电商业务流程。项目包含用户管理、图书管理、购物车、订单处理、收藏评论等核心功能模块。

技术栈

分类 技术 版本
后端框架 Spring Boot 2.2.2.RELEASE
ORM框架 MyBatis Plus 2.3
数据库 MySQL 5.7+
安全框架 Apache Shiro 1.3.2
JSON处理 FastJSON 1.2.8
工具库 Hutool 4.0.12
文件上传 Commons-IO 2.5

项目结构

springbootio69w/
├── src/main/java/com/
│   ├── SpringbootSchemaApplication.java  # 启动类
│   ├── annotation/                        # 自定义注解
│   │   ├── APPLoginUser.java
│   │   ├── IgnoreAuth.java
│   │   └── LoginUser.java
│   ├── config/                           # 配置类
│   │   ├── AlipayConfig.java
│   │   ├── InterceptorConfig.java
│   │   └── MybatisPlusConfig.java
│   ├── controller/                       # 控制器层
│   ├── service/                          # 服务层
│   │   └── impl/                         # 服务实现
│   ├── dao/                              # 数据访问层
│   ├── entity/                           # 实体类
│   │   ├── model/                        # 模型类
│   │   ├── view/                         # 视图类
│   │   └── vo/                           # 视图对象
│   ├── interceptor/                      # 拦截器
│   │   └── AuthorizationInterceptor.java
│   └── utils/                            # 工具类
├── src/main/resources/
├── db/                                   # 数据库脚本
│   └── springbootio69w.sql
└── pom.xml                               # Maven配置

核心功能模块

1. 用户管理模块(Yonghu)

功能特性:

  • 用户注册、登录、信息修改
  • 用户余额管理
  • 用户头像上传

关键表结构:

CREATE TABLE yonghu (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  yonghuming VARCHAR(200) UNIQUE NOT NULL,  -- 用户名
  mima VARCHAR(200) NOT NULL,              -- 密码
  xingming VARCHAR(200),                   -- 姓名
  xingbie VARCHAR(200),                    -- 性别
  touxiang VARCHAR(200),                   -- 头像
  youxiang VARCHAR(200),                   -- 邮箱
  shouji VARCHAR(200),                     -- 手机
  money FLOAT DEFAULT 0                    -- 余额
);

2. 图书管理模块(Tushuxinxi)

功能特性:

  • 图书信息的增删改查
  • 图书分类与类型管理
  • 点击量统计
  • 库存管理

核心字段:

  • tushumingcheng - 图书名称
  • tushufenlei - 图书分类(新品上架/新品出版/猜你喜欢)
  • tushuleixing - 图书类型(小说/资料/漫画/其他)
  • price - 价格
  • alllimittimes - 库存数量

3. 购物车模块(Cart)

功能特性:

  • 添加商品到购物车
  • 修改购买数量
  • 删除购物车商品
  • 批量结算

4. 订单模块(Orders)

功能特性:

  • 创建订单
  • 订单状态管理(未支付/已支付/已发货/已完成/已取消/已退款)
  • 订单支付(支持支付宝)
  • 订单查询

订单状态流转:

未支付 → 已支付 → 已发货 → 已完成
    ↓
  已取消/已退款

5. 收藏与评论模块

收藏功能(Storeup):

  • 用户收藏图书
  • 收藏列表管理

评论功能(Discusstushuxinxi):

  • 图书评论
  • 评论回复

6. 公告资讯模块(News)

  • 系统公告发布
  • 资讯列表展示

关键技术实现

Token认证机制

项目采用 JWT Token 实现无状态认证:

// Token实体
public class TokenEntity {
    private Long userid;
    private String username;
    private String tablename;
    private String role;
    private String token;
    private Date expiratedtime;
}

拦截器权限控制

通过 AuthorizationInterceptor 实现接口访问权限控制:

public class AuthorizationInterceptor implements HandlerInterceptor {
    @Autowired
    private TokenService tokenService;
    
    @Override
    public boolean preHandle(HttpServletRequest request, 
                            HttpServletResponse response, 
                            Object handler) throws Exception {
        // 检查@IgnoreAuth注解
        // 验证Token有效性
        // 设置当前用户信息到Session
    }
}

数据响应封装

统一响应格式 R.java

public class R extends HashMap<String, Object> {
    public static R ok() { return new R().put("code", 0); }
    public static R ok(String msg) { return new R().put("code", 0).put("msg", msg); }
    public static R ok(Map<String, Object> map) { /* ... */ }
    public static R error(String msg) { return new R().put("code", -1).put("msg", msg); }
}

数据库设计

核心表关系

users(管理员)  ←→  token(登录令牌)
    ↓
yonghu(用户)  ←→  address(收货地址)
    ↓
    ├── cart(购物车)     ←→  tushuxinxi(图书)
    ├── orders(订单)     ←→  tushufenlei(图书分类)
    ├── storeup(收藏)    ←→  tushuleixing(图书类型)
    └── discusstushuxinxi(评论)

数据表清单

表名 中文名 用途
users 管理员表 后台管理员登录
yonghu 用户表 前端用户信息
token Token表 登录状态管理
tushuxinxi 图书信息表 图书数据存储
tushufenlei 图书分类表 分类管理
tushuleixing 图书类型表 类型管理
cart 购物车表 购物车数据
orders 订单表 订单数据
address 地址表 收货地址
storeup 收藏表 收藏记录
discusstushuxinxi 评论表 图书评论
news 资讯表 公告资讯
config 配置表 系统配置

部署与运行

环境要求

  • JDK 1.8+
  • MySQL 5.7+
  • Maven 3.5+

运行步骤

  1. 创建数据库
CREATE DATABASE springbootio69w CHARACTER SET utf8mb4;
  1. 导入数据
mysql -u root -p springbootio69w < db/springbootio69w.sql
  1. 配置数据源
    application.yml 中配置数据库连接信息。

  2. 启动项目

mvn spring-boot:run
  1. 访问地址
  • API接口:http://localhost:8080/springbootio69w/

测试账户

管理员账户:

  • 用户名:abo
  • 密码:abo

测试用户:

  • 用户名:1
  • 密码:1

项目亮点

  1. 完整的业务流程:从用户注册、浏览图书、加入购物车、提交订单到支付完成,实现完整闭环。

  2. 安全机制

    • Token认证防止未授权访问
    • 密码加密存储
    • SQL注入防护
  3. 推荐算法:实现基于用户购买记录的协同过滤推荐(autoSort2接口)。

  4. 扩展性设计

    • 支持多数据库切换(MySQL/SQL Server)
    • 模块化架构便于功能扩展
  5. 支付集成:预留支付宝支付接口,便于后续接入。

总结

该网上书城项目是一个功能完整、架构清晰的Spring Boot实战项目,适合作为学习Spring Boot开发的参考案例,也可作为毕业设计或课程设计的基础框架。项目代码结构规范,注释完善,具备良好的可维护性和扩展性。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐