1. 项目概述
这个基于SpringBoot+Vue3的二手交易平台项目,是我去年带队完成的一个校园创业项目。当时我们发现校园内二手物品交易需求旺盛,但信息分散在各类社交平台,交易过程缺乏保障。于是我们决定开发一个专为校园场景优化的二手交易系统,从技术选型到部署上线共耗时3个月,目前已在5所高校稳定运行。
平台采用前后端分离架构,后端基于SpringBoot 2.7 + MyBatis-Plus + Redis技术栈,前端使用Vue3 + TypeScript + Element Plus。特别值得一提的是我们实现的协同过滤推荐算法,使商品点击率提升了35%。下面我会从架构设计到核心实现,完整分享这个项目的技术细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 后端技术栈选型
选择SpringBoot作为后端框架主要基于以下考量:
- 快速开发:SpringBoot的约定优于配置原则,让我们用3天就搭好了基础框架
- 微服务友好:为后续扩展留出空间(虽然当前是单体架构)
- 生态丰富:整合MyBatis-Plus后,数据库操作代码量减少60%
数据库选用MySQL 8.0,主要因为:
- 事务完整性要求高(支付、订单状态变更等)
- 校园场景下数据量在百万级,MySQL完全够用
- 配合Redis缓存热点数据,QPS实测可达1200+
2.2 前端技术决策
Vue3相比Vue2带来的优势:
- 性能提升:组合式API使代码复用更高效
- TypeScript支持:类型检查让团队协作更顺畅
- 更小的包体积:gzip后首屏资源仅380KB
特别说明选择Element Plus而非Ant Design Vue的原因:
- 表单组件更符合二手商品发布场景
- 主题定制更方便(我们做了校园风格主题)
- 社区问题响应更快
3. 核心模块实现
3.1 用户认证方案
采用JWT + 双Token机制实现认证:
java复制// Token生成示例
public String generateToken(User user) {
return Jwts.builder()
.setHeaderParam("typ", "JWT")
