本项目是一套基于 Vue + Spring Boot 的校园二手交易平台,适用于毕业设计、课程设计或实际部署使用,支持买卖双方在校园内发布、浏览、交易闲置物品。系统功能完整,界面美观,交互流畅,适合作为全栈项目的优秀代表。
分类 | 技术栈 |
---|---|
前端 | Vue3 + Vue Router + Element Plus + Axios |
后端 | Spring Boot + MyBatis Plus + JWT + Swagger |
数据库 | MySQL 8.x |
图片存储 | 本地上传或可接入七牛云 |
依赖管理 | Maven |
其他 | 分页插件、跨域配置、接口文档 |
user
:用户表(含角色字段)product
:商品信息(标题、描述、价格、图片地址、状态等)order
:订单表(买家、卖家、商品、状态、创建时间)category
:分类表message
:留言或站内私聊report
:举报信息表axios.post
调用登录接口JWT Token
,返回前端保存至 localStorage
Authorization
请求头携带 Token 实现权限校验Token 拦截器配置代码片段(Spring Boot):
public class JwtInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
String token = request.getHeader("Authorization");
if (JwtUtil.validate(token)) return true;
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
return false;
}
}
MultipartFile
接收图片并保存到本地(或云)前端上传代码示例(Vue):
<el-upload
action="http://localhost:8080/api/upload"
:on-success="handleSuccess"
:before-upload="beforeUpload"
list-type="picture-card">
el-upload>
后端分页接口代码示例:
@GetMapping("/product/list")
public IPage<Product> list(@RequestParam int page, @RequestParam int size) {
return productService.page(new Page<>(page, size));
}
可输出的文档内容包括:
本项目可作为毕设优秀案例,若你在开发中遇到问题,或需要我帮助你:
欢迎私信我,支持1v1指导,绝不套路,认真带你完成毕业设计。