news 2026/4/15 22:50:35

接着分享一个开源的商城系统: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/4/1 18:15:13

揭秘KLayout:颠覆传统的集成电路版图设计解决方案

揭秘KLayout&#xff1a;颠覆传统的集成电路版图设计解决方案 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 在芯片设计领域&#xff0c;开源工具正以前所未有的速度改变着行业格局。KLayout作为一款开源集成电路…

作者头像 李华
网站建设 2026/4/4 0:54:04

探索与实践:联发科设备调试工具MTKClient的底层技术解析

探索与实践&#xff1a;联发科设备调试工具MTKClient的底层技术解析 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 联发科设备调试工具MTKClient作为一款专注于芯片级修复与底层系统管理的…

作者头像 李华
网站建设 2026/4/9 14:34:05

MouseTester深度剖析:从原理到实践的鼠标性能探索指南

MouseTester深度剖析&#xff1a;从原理到实践的鼠标性能探索指南 【免费下载链接】MouseTester 项目地址: https://gitcode.com/gh_mirrors/mo/MouseTester 一、核心价值&#xff1a;重新定义鼠标性能测试 当你在激烈的游戏中因鼠标漂移错失关键操作&#xff0c;或是…

作者头像 李华
网站建设 2026/4/14 3:21:21

XXMI启动器技术评测:多游戏模组管理的兼容性与性能优化实践

XXMI启动器技术评测&#xff1a;多游戏模组管理的兼容性与性能优化实践 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 【兼容性故障诊断清单】常见模组管理问题的技术归因 在游…

作者头像 李华
网站建设 2026/4/8 11:43:21

破解QMC加密格式困局:QMCDecode让音乐文件重获自由

破解QMC加密格式困局&#xff1a;QMCDecode让音乐文件重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换…

作者头像 李华
网站建设 2026/4/6 1:47:15

Open-AutoGLM实战教程:Python API远程调用AI代理详细步骤

Open-AutoGLM实战教程&#xff1a;Python API远程调用AI代理详细步骤 1. 什么是Open-AutoGLM&#xff1f;手机端AI Agent的全新打开方式 Open-AutoGLM 是智谱开源的一套面向移动端的 AI Agent 框架&#xff0c;专为在真实手机设备上运行智能助理任务而设计。它不是简单的文本…

作者头像 李华