1. 项目概述与背景
校园二手交易一直是个高频但低效的场景。记得我刚上大学时,想买本二手教材得满校园跑公告栏,而毕业时成堆的专业书又不知如何处理。这种供需不匹配的现象几乎存在于每所高校。传统线下交易方式存在三个痛点:信息不对称导致交易效率低下、缺乏安全保障机制、价格形成过程不透明。
针对这些问题,我设计开发了一套校园在线拍卖系统。与普通二手交易平台不同,我们引入了英式拍卖机制(价格由低到高竞价),配合实时通信技术还原线下拍卖会的紧张氛围。系统采用前后端分离架构,后端使用SpringBoot+MyBatis实现业务逻辑,前端基于Vue3+Element Plus构建交互界面,通过JWT保障接口安全,Redis缓存热点数据,WebSocket实现实时竞价通知。
技术选型思考:选择SpringBoot而非传统SSM框架,主要考虑其自动配置特性可快速集成Redis、WebSocket等组件;Vue3的Composition API相比Options API更利于复杂拍卖页面的状态管理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构设计
2.1 系统分层架构
系统采用经典的四层架构设计:
code复制[用户层]
浏览器/移动端 → Nginx负载均衡 → CDN静态资源
[应用层]
Vue3前端应用集群 ← WebSocket → SpringBoot应用集群
↑HTTPS↓
[服务层]
Redis缓存集群 ←→ MySQL主从集群
↘ 对象存储OSS ↗
2.2 技术栈深度解析
2.2.1 认证与授权方案
采用JWT+RBAC组合方案:
- 登录成功生成包含用户ID、角色的JWT令牌
- 前端存储于localStorage并附加到请求Header
- 后端通过过滤器验证签名和有效期
- 注解式权限控制(如@PreAuthorize("hasRole('ADMIN')"))
java复制// JWT生成核心代码示例
public String generateToken(Long userId, Integer role) {
return Jwts.builder()
.setSubject(userId.toString())
.claim("role
