news 2026/4/18 7:14:27

接着分享一个开源的商城系统: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/18 3:50:37

如何用XXMI-Launcher实现多游戏模组高效管理?超实用指南

如何用XXMI-Launcher实现多游戏模组高效管理&#xff1f;超实用指南 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher XXMI-Launcher是一款专为原神、星穹铁道、鸣潮和绝区零等游戏…

作者头像 李华
网站建设 2026/4/17 8:14:00

Llama3-8B文档摘要功能实战:长文本处理部署与效果评估

Llama3-8B文档摘要功能实战&#xff1a;长文本处理部署与效果评估 1. 为什么选Llama3-8B做文档摘要&#xff1f; 你有没有遇到过这样的情况&#xff1a;手头有一份50页的技术白皮书、一份2万字的行业分析报告&#xff0c;或者一封密密麻麻的项目需求邮件&#xff1f;想快速抓…

作者头像 李华
网站建设 2026/4/18 3:48:53

零门槛小红书数据采集:Python工具高效合规实战指南

零门槛小红书数据采集&#xff1a;Python工具高效合规实战指南 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在数据驱动决策的时代&#xff0c;高效采集与合规爬取成为数据…

作者头像 李华
网站建设 2026/4/18 3:50:02

游戏模组管理深度评测:XXMI启动器的技术架构与实用价值分析

游戏模组管理深度评测&#xff1a;XXMI启动器的技术架构与实用价值分析 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 游戏模组管理工具是现代游戏生态的重要组成部分&#xff…

作者头像 李华
网站建设 2026/4/16 23:40:29

革新性PDF翻译全攻略:学术文档处理的高效解决方案

革新性PDF翻译全攻略&#xff1a;学术文档处理的高效解决方案 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 在学术研究与专业工作中&#xff0c;PDF翻译工具已成为跨语言交流的核心枢纽&…

作者头像 李华
网站建设 2026/4/17 18:26:44

本地生活服务数据采集工具:从手动到自动化的电商情报分析指南

本地生活服务数据采集工具&#xff1a;从手动到自动化的电商情报分析指南 【免费下载链接】xianyu_spider 闲鱼APP数据爬虫 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_spider 为什么手动采集效率低下&#xff1f;在本地生活服务领域&#xff0c;商户需要实时…

作者头像 李华