news 2026/3/24 23:57:11

接着分享一个开源的商城系统:SpringBoot + Vue + Mybatis 技术栈 【代码已经开源】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接着分享一个开源的商城系统:SpringBoot + Vue + Mybatis 技术栈 【代码已经开源】

前言

这个系统是蛮久之前开发的一个,也是一个商城系统。包含了常见的商品发布和订单购买功能,当时学习练手做的一个系统。技术栈的话是SpringBoot + Vue,持久层框架用的是Mybatis,数据库的话是Mysql,很经典的一个技术战组合。不过这个系统是没有进行前后端分离的,一个项目包含了前端和后端。目前代码已经开源到GitHub、对初学者来说有一定的参考价值~

更多资料:更多资料

需求功能说明

此系统基本上包括了从管理员管理商品种类,发布商品信息、到用户浏览商品、加入购物车,下订单购买,收货评论的大致流程。简化了相关的逻辑,仅供参考学习。这里大致说明一下功能:商品分类管理、商品管理、订单管理、发布平台公告;用户浏览商品,在线交流、下订单购买、查看订单状态等。后台管理多为列表,增删改查这些操作。包括图上上传,超文本编辑等功能。注意:这里的业务逻辑经过简化,不代表实际生产操作。

实现效果(部分页面截图)

图1 商品详情页面

核心代码

查询商品涉及到两个接口一个是查询商品详情,一个是商品评论信息。当然这两个接口也可以合并为一个。这里的分页是通过插件的形式实现~

public GoodsInfo findById(Long id) { GoodsInfo goodsInfo = goodsInfoDao.selectByPrimaryKey(id); getRelInfo(goodsInfo); return goodsInfo; } public PageInfo<GoodsInfo> findRecommendGoods(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List<GoodsInfo> list = goodsInfoDao.findRecommendGoods(); return PageInfo.of(list); }

图2 商品新增页面

核心代码

图片上传相关接口~

@PostMapping("/upload") public Result upload(MultipartFile file, HttpServletRequest request) throws IOException { String originName = file.getOriginalFilename(); // 1. 先查询有没有相同名称的文件 NxSystemFileInfo fileInfo = nxSystemFileInfoService.findByFileName(name); if (fileInfo != null) { throw new CustomException("1001", "文件名:\"" + name + "\"已存在"); } // 文件名加个时间戳 String fileName = FileUtil.mainName(originName) + System.currentTimeMillis() + "." + FileUtil.extName(originName); // 2. 文件上传 FileUtil.writeBytes(file.getBytes(), BASE_PATH + fileName); // 3. 信息入库,获取文件id NxSystemFileInfo info = new NxSystemFileInfo(); info.setOriginName(originName); info.setFileName(fileName); NxSystemFileInfo addInfo = nxSystemFileInfoService.add(info); System.out.println(addInfo); if (addInfo != null) { return Result.success(addInfo); } else { return Result.error("4001", "上传失败"); } }

图3 公告发布页面

核心代码

@PostMapping("/notice/upload") public Result<Map<String, String>> noticeUpload(MultipartFile file, HttpServletRequest request) throws IOException { String originName = file.getOriginalFilename(); // 文件名加个时间戳 String fileName = FileUtil.mainName(originName) + System.currentTimeMillis() + "." + FileUtil.extName(originName); // 2. 缩小尺寸 FileUtil.mkdir(BASE_PATH); Thumbnails.of(file.getInputStream()).width(400).toFile(BASE_PATH + fileName); // 3. 信息入库,获取文件id NxSystemFileInfo info = new NxSystemFileInfo(); info.setOriginName(originName); info.setFileName(fileName); NxSystemFileInfo addInfo = nxSystemFileInfoService.add(info); Map<String, String> map = new HashMap<>(2); map.put("src", "/files/download/" + addInfo.getId()); map.put("title", originName); return Result.success(map); }

分享几个开源的项目(在GitHub上)

🎯 项目一:美妆商城系统

技术栈:SpringBoot + Vue + mybatis + mysql

https://github.com/zhengyuzh/meizhuangshop

🚀 项目二:智能美妆商城系统

技术栈:SpringBoot + Vue + 协同过滤算法 + 敏感词过滤 + mybatis + mysql

https://github.com/zhengyuzh/mzshop

🛍️ 项目三:通用商城系统

技术栈:前后端分离 SpringBoot + Vue + mybatis + mysql

https://github.com/zhengyuzh/mallsystem

💗 项目四:大学生心理健康管理系统

技术栈:SpringBoot + mybatis + mysql 等

https://github.com/zhengyuzh/Mental-health-management-system

📚 项目五:智能书籍借阅系统

技术栈:SpringBoot + Vue + Redis + Mybatis-plus + 微信小程序

https://github.com/zhengyuzh/Book-borrowing-system公众号回复如下内容即可获取对应资料

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/9 12:41:55

IQuest-Coder-V1 vs Gemini Code Assist:企业级部署对比

IQuest-Coder-V1 vs Gemini Code Assist&#xff1a;企业级部署对比 1. 引言&#xff1a;当代码智能走向工程化落地 你有没有遇到过这种情况&#xff1a;团队里新来的工程师花了一周才理清老项目的调用链&#xff1f;或者一个紧急修复因为没人懂那段“祖传代码”而卡住&#…

作者头像 李华
网站建设 2026/3/14 12:35:27

无需复杂环境!YOLOv12官版镜像开箱即用

无需复杂环境&#xff01;YOLOv12官版镜像开箱即用 1. 前言&#xff1a;告别繁琐配置&#xff0c;一键启动YOLOv12 你是不是也经历过这样的场景&#xff1f;想跑个最新的目标检测模型&#xff0c;结果光是环境配置就花了整整一天——CUDA版本不对、PyTorch不兼容、Flash Atte…

作者头像 李华
网站建设 2026/3/17 10:26:27

亲测通义千问3-14B:128k长文处理效果超预期

亲测通义千问3-14B&#xff1a;128k长文处理效果超预期 1. 引言&#xff1a;为何选择 Qwen3-14B&#xff1f; 在当前大模型部署成本高企的背景下&#xff0c;如何在有限算力条件下实现高质量推理&#xff0c;成为开发者和企业关注的核心问题。尽管30B以上参数模型在复杂任务中…

作者头像 李华
网站建设 2026/3/8 10:48:34

如何用Sunshine打造个人游戏串流平台:从部署到优化的完整指南

如何用Sunshine打造个人游戏串流平台&#xff1a;从部署到优化的完整指南 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su…

作者头像 李华
网站建设 2026/3/23 14:41:26

显卡驱动清理完全指南:DDU工具驱动残留解决2024方案

显卡驱动清理完全指南&#xff1a;DDU工具驱动残留解决2024方案 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller …

作者头像 李华