源码专题-java0141-基于SSM校园二手物品交易系统每天更新文章,每天进步一点点
精品专栏
基于springboot旅游助手小程序系统设计与实现
基于ssm酒水售卖系统设计与实现
基于springboot协调过滤算法的中式菜系推荐系统的设计与实现
基于springboot企业考勤管理系统设计与实现
基于springboot休闲食品在线销售系统设计与实现
# 校园二手物品交易系统 — 项目文档
## 1. 项目概述
**校园二手物品交易系统**(secondhand)是一个基于传统 SSM 架构的 Web 应用,面向校园场景提供二手商品的发布、浏览、交易和订单管理功能。系统采用 B/S 架构,后端提供 RESTful JSON API,前端使用 JSP + jQuery + Bootstrap 构建管理界面。## 2. 技术栈
### 2.1 后端技术
|------|------|------|------|| 编程语言 | Java | 17 | JDK 17 || 构建工具 | Maven | — | WAR 包部署 || IoC / AOP | Spring Framework | 5.3.31 | 依赖注入、事务管理 || Web 框架 | Spring MVC | 5.3.31 | REST API + 页面路由 || ORM 框架 | MyBatis | 3.5.13 | SQL 映射,XML 配置 || MyBatis 整合 | mybatis-spring | 2.1.1 | Spring 集成 MyBatis || 数据库 | MySQL | 8.2.0 | 关系型数据存储 || 连接池 | Alibaba Druid | 1.2.20 | 数据库连接池管理 || 分页插件 | PageHelper | 5.3.3 | MyBatis 物理分页 || JSON 序列化 | Jackson | 2.15.3 | REST 接口 JSON 转换 || 工具库 | Lombok | 1.18.30 | 简化实体类代码 || 日志 | SLF4J + Logback | 1.7.36 / 1.2.12 | 日志输出 |### 2.2 前端技术
|------|------|------|------|| 视图层 | JSP + JSTL | 2.3.3 / 1.2 | 服务端渲染页面 || JavaScript | jQuery | 3.7.1 | DOM 操作与 AJAX || UI 框架 | Bootstrap | 5.3 | 响应式 UI 组件 || 图标 | Bootstrap Icons | — | 界面图标 |### 2.3 部署与运行
| Web 容器 | Tomcat 9+ | 外部部署 WAR 包 || Servlet 规范 | Servlet 4.0 | web.xml 配置 || 配置方式 | XML + Properties | 非 Spring Boot 项目 |### 2.4 系统架构
┌─────────────────────────────────────────────────────┐└──────────────────────┬──────────────────────────────┘┌──────────────────────▼──────────────────────────────┐│ Spring MVC (Controller 层) ││ LoginInterceptor → 登录认证拦截 │├─────────────────────────────────────────────────────┤├─────────────────────────────────────────────────────┤│ MyBatis Mapper 层 (数据访问) │├─────────────────────────────────────────────────────┤│ Druid 连接池 → MySQL 数据库 │└─────────────────────────────────────────────────────┘## 3. 数据库设计
|------|------|----------|| `user` | 用户表 | username, password, role, real_name, phone || `category` | 商品分类表 | category_name, remark || `goods` | 二手商品表 | goods_name, category_id, price, seller_id, status || `order_info` | 订单表 | order_no, goods_id, buyer_id, order_price, order_status |**订单状态**:`待付款` / `已支付` / `已完成` / `已取消`## 4. 角色与核心功能
系统定义两种用户角色,存储在 `user.role` 字段中:### 4.1 管理员(admin)
管理员负责系统的整体运营和数据维护,核心功能包括:|----------|----------|------|| 系统首页 | 查看数据统计 | 展示用户、分类、商品、订单总数 || 用户管理 | 增删改查、角色分配 | 管理所有用户账号,可设置 admin/user 角色 || 分类管理 | 增删改查 | 维护商品分类(如书籍、电子产品、生活用品等) || 商品管理 | 增删改查、状态管理 | 管理全部商品,修改商品状态(在售/已售) || 订单管理 | 增删改查、状态流转 | 管理全部订单,更新订单状态 |### 4.2 普通用户(user)
|----------|----------|------|| 账号注册/登录 | 注册、登录、登出 | 注册时默认角色为 user || 浏览商品 | 查看商品列表和详情 | 无需登录即可浏览(公开接口) || 浏览分类 | 查看商品分类 | 无需登录即可浏览(公开接口) || 发布商品 | 发布二手物品 | 登录后发布,自动关联当前用户为卖家 || 管理商品 | 编辑/删除自己发布的商品 | 修改价格、描述、状态等 || 下单购买 | 创建订单 | 登录后下单,自动关联当前用户为买家 || 查看订单 | 查看自己的订单 | 跟踪订单状态 |### 4.3 访客(未登录)
## 5. 接口概览
### 5.1 公开接口(无需登录)
| POST | `/user/login` | 用户登录 || POST | `/user/register` | 用户注册 || GET | `/goods/list` | 商品列表(分页) || GET | `/goods/{id}` | 商品详情 || GET | `/category/all` | 全部分类 || GET | `/category/list` | 分类列表(分页) || GET | `/category/{id}` | 分类详情 |### 5.2 受保护接口(需登录)
|------|----------|------|| 用户 | `/user` | info, list, CRUD || 分类 | `/category` | CRUD || 商品 | `/goods` | CRUD(发布时自动设置卖家) || 订单 | `/order` | CRUD(下单时自动设置买家) || 页面 | `/page` | index, user, category, goods, order |### 5.3 统一响应格式
## 6. 项目结构
Maven 构建配置
数据库建表脚本
项目文档
├── java/com/example/secondhand/控制器(REST + 页面路由)
业务接口
业务实现
MyBatis Mapper 接口
实体类
统一响应封装
异常处理
登录拦截器
│ ├── applicationContext.xmlSpring 根容器配置
Spring MVC 配置
MyBatis 全局配置
日志配置
数据库连接配置
MyBatis SQL 映射文件
Web 应用部署描述
JSP 视图页面
## 7. 认证机制
- 认证方式:基于 HttpSession 的会话认证
- Session 键名:
loginUser(存储 User 实体,不含密码) - 拦截器:
LoginInterceptor 在请求到达 Controller 前校验登录状态 - AJAX 请求 → 返回 JSON
{ "code": 401, "msg": "未登录或登录已过期" }
## 8. 部署说明
- 创建 MySQL 数据库,执行 `db/db.sql` 建表脚本
- 修改 `src/main/resources/jdbc.properties` 中的数据库连接信息
- 执行 `mvn clean package` 构建 WAR 包
- 将 WAR 包部署到 Tomcat 的 `webapps` 目录
- 启动 Tomcat,访问 `http://localhost:8080/secondHand/page/login`。
软件定制及其他业务
请加微信号:13128600812
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)