基于Spring Boot美妆产品推荐系统-计算机毕业设计源码+LW文档
技术微信:375279829
本课题包括源程序、数据库、论文、运行软件、运行教程
毕业设计资料-计算机毕业设计源码网:我们提供的源码通过邮箱或者QQ微信传送,如果有啥问题直接联系客服
包在您电脑上运行成功
语言:Java
数据库:MySQL
框架:ssm、springboot、mvc
课题相关技术、功能详情请联系技术
作品描述
**摘要**:随着电商行业快速发展,美妆线上消费规模持续增长,海量美妆商品信息给用户挑选合适产品带来较大困扰,传统检索模式只能依靠关键词匹配,难以贴合用户个性化需求。为解决美妆商品信息杂乱、推荐针对性弱、管理效率低等问题,本文设计并实现一款基于Spring Boot框架的美妆产品推荐系统。系统分为管理员后台与用户前端两大模块,管理员端实现美妆信息管理、用户管理、系统管理、数据可视化统计等功能;用户端提供商品浏览、商品详情查看、商品收藏、公告查看、个人信息管理等基础功能,同时结合标签匹配实现简易个性化推荐。系统采用MySQL作为持久化数据库,Vue作为前端页面框架,ECharts实现可视化图表展示,B/S架构进行部署。经过功能测试,系统运行稳定,各个模块功能均达到预期目标,能够为美妆爱好者提供商品查询、个性化推荐服务,同时方便管理人员统一维护美妆商品数据,具备一定实用价值。
**关键词**:Spring Boot;美妆推荐系统;Vue;MySQL;个性化推荐;ECharts
## 一、绪论
### 1.1 研究背景
互联网电商的普及带动美妆行业线上渠道飞速扩张,各大电商平台美妆SKU数量庞大,品牌、色号、肤质适配、价格区间等属性繁杂。消费者在选购粉底液、口红、护肤品等美妆产品时,往往需要花费大量时间筛选对比,单纯依靠关键词搜索只能匹配标题文字,无法根据肤质偏好、风格标签、预算偏好进行精准筛选。同时对于美妆店铺运营管理者而言,分散的商品数据难以统计店铺分布、价格区间、销售情况,缺少直观的数据看板辅助运营分析。
传统美妆网站大多只具备商品展示功能,缺少推荐能力与数据统计面板,管理流程繁琐。在此背景下,开发一套集商品管理、数据可视化、个性化推荐于一体的美妆产品推荐系统具有现实意义。借助Spring Boot开发框架可以简化后端配置,快速搭建稳定服务,搭配Vue前端实现页面交互,利用ECharts将店铺分布、地域占比、价格、销售数据以图表形式可视化呈现,既满足普通用户挑选美妆产品、获取个性化推荐的需求,也满足管理员对美妆商品、平台用户进行统一管控的需求。
### 1.2 研究意义
理论意义:本文将Spring Boot后端开发、标签式推荐算法、数据可视化技术结合应用在美妆电商场景,丰富中小型垂直品类推荐系统的实现案例,为同类护肤品、服饰类垂直推荐系统开发提供参考思路。本文采用基于商品标签的协同匹配推荐方案,实现轻量级个性化推荐,降低算法部署成本,适合毕业设计中小型项目落地。
现实意义:面向美妆消费用户,系统可以按照标签匹配推送适配的美妆产品,减少用户筛选商品的时间,提升选购体验;面向平台管理员,可视化大屏直观展示美妆商品地域分布、价格统计、销售统计、标签统计数据,帮助管理员掌握商品整体情况,简化商品信息录入、修改、删除、审核工作,提升美妆商品信息管理效率。
### 1.3 国内外研究现状
国外美妆电商起步较早,Sephora等美妆平台很早就上线智能推荐模块,大多采用矩阵分解、深度学习模型,依托海量用户行为数据做精准推荐,算法成熟,但系统架构复杂,部署成本高,适合大型商业平台。国外相关研究更多聚焦于复杂推荐模型优化,侧重提升推荐准确率,对轻量化、低成本管理后台的研究较少。
国内淘宝、京东、小红书等平台美妆板块推荐功能强大,但是平台属于综合电商,美妆只是其中一个类目。国内高校毕业设计中,大量推荐系统集中在图书、电影、商品综合推荐,专门针对美妆垂直品类、带可视化大屏的美妆推荐系统案例相对较少。很多小型美妆独立网站只实现商品展示,缺少推荐功能和数据统计看板。本文针对该缺口,搭建轻量化美妆推荐平台,兼顾管理后台、可视化大屏、用户推荐前端,适合中小型美妆店铺使用。
### 1.4 主要研究内容与论文结构
本文主要工作:
1. 对美妆推荐系统进行需求分析,划分管理员、普通用户角色,梳理功能需求、非功能需求;
2. 完成系统总体架构设计、数据库表结构设计;
3. 基于Spring Boot开发后端接口,Vue开发前端页面,实现后台管理、用户前端、数据可视化大屏;
4. 实现基于标签匹配的美妆商品推荐逻辑;
5. 完成系统测试,验证功能可用性、稳定性。
论文章节安排:第一章绪论;第二章相关技术介绍;第三章系统需求分析;第四章系统设计;第五章系统实现;第六章系统测试;第七章总结与展望。
## 二、相关技术介绍
### 2.1 Spring Boot框架
Spring Boot是基于Spring的开源后端开发框架,核心优势是自动配置,减少XML配置文件编写,内置Tomcat服务器,项目打包后可以直接独立运行,不用单独部署容器。Spring Boot提供Starter依赖,引入spring-boot-starter-web、mybatis-spring-boot-starter等依赖就可以快速开发Web接口、操作数据库。本项目后端使用Spring Boot搭建服务,接收前端Vue发送的HTTP请求,完成业务逻辑处理、数据库交互,返回JSON格式数据给前端,开发效率高,项目轻量化,非常适合本毕业设计项目。
### 2.2 Vue前端框架
Vue是渐进式JavaScript前端框架,采用MVVM思想,数据双向绑定,页面渲染高效,组件化开发模式便于页面复用。本系统分为两个前端项目:管理员后台页面、用户端美妆商城页面。管理员页面使用Element UI组件库快速搭建表单、表格、侧边菜单栏;用户端页面完成轮播图、商品详情、收藏、公告展示等交互。Vue通过Axios发起网络请求,调用Spring Boot后端接口,渲染后端返回的美妆商品数据。
### 2.3 MySQL数据库
MySQL是开源关系型数据库,支持事务,稳定性强,适合中小型Web项目存储结构化数据。本系统使用MySQL存储用户信息、美妆商品信息、收藏信息、公告信息、标签信息等数据,使用Navicat作为数据库可视化管理工具,设计合理的主键、外键约束,保证数据完整性。
### 2.4 MyBatis
MyBatis是持久层框架,用来实现Java程序和MySQL数据库交互,支持自定义SQL语句,将数据库查询结果映射为Java实体类对象,对比JPA更加灵活,可以自主编写SQL,方便实现复杂多条件查询、标签关联查询,本项目使用MyBatis完成美妆商品的增删改查、标签关联查询。
### 2.5 ECharts可视化
ECharts是百度开源的数据可视化图表库,支持饼图、柱状图、仪表盘、环形图等多种图表,前端传入JSON数据即可渲染图表。本系统首页大屏使用ECharts绘制所在地占比饼图、价格统计柱状图、标签统计仪表盘、销售情况环形图,直观展示美妆商品统计数据,实现数据看板效果,和截图中的可视化大屏功能匹配。
### 2.6 B/S架构
B/S即浏览器/服务器架构,用户不需要安装客户端,通过浏览器访问系统地址即可使用。后端部署在服务端,所有业务逻辑、数据库操作都在服务器完成,前端只负责页面展示和交互,维护升级方便,只需要更新服务器代码,所有用户同步获取新版本。本系统采用B/S架构。
## 三、系统需求分析
### 3.1 角色分析
系统一共两类用户:管理员、普通用户。
管理员:登录后台管理系统,管理美妆商品信息、管理注册用户、发布美妆公告、查看可视化统计大屏数据;
普通用户:登录用户前端页面,浏览美妆商品、查看商品详情、收藏商品、查看公告、查看个性化推荐商品、维护个人信息。
### 3.2 功能需求分析
#### 3.2.1 管理员端功能需求
(1)系统首页大屏:展示美妆信息总数,使用ECharts渲染多个统计图表:店名分布、所在地占比饼图、价格统计柱状图、标签统计仪表盘、销售情况环形图,表格展示美妆商品列表;
(2)美妆信息管理:美妆商品新增、修改、删除、分页查询,录入字段包含标题、店名、现价、原价、所在地、销售情况、昵称、标签、商品图片;
(3)用户管理:查看所有注册用户,对用户信息进行编辑、删除;
(4)系统管理:基础配置、公告管理,发布、修改、删除美妆公告;
(5)个人信息:管理员修改自己账号密码、基础资料。
#### 3.2.2 用户端功能需求
(1)首页:轮播banner图展示美妆宣传图;
(2)美妆信息模块:浏览美妆商品列表,点击进入商品详情页,查看店铺、价格、产地、标签等信息;
(3)商品收藏:对感兴趣美妆产品进行收藏、取消收藏;
(4)美妆公告:查看管理员发布的美妆公告;
(5)个人中心:修改个人资料、密码,查看我的收藏;
(6)个性化推荐:根据用户浏览、收藏商品的标签,匹配相同标签的美妆商品进行推荐,属于轻量标签推荐。
### 3.3 非功能需求
(1)性能需求:普通页面响应时间控制在2秒以内,图表加载3秒内完成,支持数十人同时在线访问;
(2)安全性需求:登录校验,未登录用户不能访问后台和用户端受限页面,密码加密存储;
(3)易用性需求:页面布局简洁,菜单清晰,操作简单;
(4)可维护性:代码分层开发,Controller、Service、Mapper分层,注释完善,方便后续迭代。
### 3.4 用例分析
管理员用例:登录、查看数据大屏、美妆信息CRUD、用户管理、公告管理、修改个人信息;
用户用例:注册登录、浏览美妆商品、查看详情、收藏商品、查看公告、获取标签推荐、修改个人信息。
## 四、系统设计
### 4.1 系统总体架构设计
系统采用前后端分离架构,分为四层:表现层、业务层、数据访问层、数据库层。
1. 表现层:Vue前端,分为管理员后台、用户商城前端,使用Element UI、ECharts,Axios请求后端接口;
2. 业务层:Spring Boot Service层,封装业务逻辑,推荐匹配逻辑、数据统计逻辑写在Service;
3. 数据访问层:MyBatis Mapper层,编写SQL操作MySQL数据表;
4. 数据库层:MySQL存储全部业务数据。
后端统一返回Result封装对象,包含code、msg、data字段,方便前端统一处理返回结果。
### 4.2 数据库设计
根据业务需求设计数据表,核心表如下:
#### (1)用户表 user
| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| id | int | 主键自增 |
| username | varchar | 账号 |
| password | varchar | 密码 |
| nickname | varchar | 昵称 |
| role | varchar | 角色 admin/user |
| phone | varchar | 手机号 |
| create_time | datetime | 创建时间 |
#### (2)美妆商品表 beauty
| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| id | int | 主键 |
| title | varchar | 商品标题 |
| shop_name | varchar | 店名 |
| now_price | decimal | 现价 |
| old_price | decimal | 原价 |
| address | varchar | 所在地 |
| sale_info | varchar | 销售情况 |
| tag | varchar | 标签(标签1/标签2,用于推荐匹配) |
| img | varchar | 商品图片地址 |
| create_time | datetime | 录入时间 |
#### (3)收藏表 collect
| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| id | int | 主键 |
| user_id | int | 用户id |
| beauty_id | int | 美妆商品id |
| create_time | datetime | 收藏时间 |
#### (4)公告表 notice
| 字段名 | 类型 | 说明 |
| --- | --- | --- |
| id | int | 主键 |
| title | varchar | 公告标题 |
| content | text | 公告内容 |
| create_time | datetime | 发布时间 |
### 4.3 推荐模块设计
本系统采用**基于标签的内容匹配推荐算法**,属于轻量级推荐方案,适合毕业设计项目。
流程:
1. 用户浏览或者收藏美妆商品,系统提取该商品的tag标签;
2. 查询数据库中,标签字段包含相同标签、且不是当前商品的美妆产品;
3. 按照匹配度排序,返回前N条商品作为推荐列表;
优点:实现简单,不需要复杂矩阵分解、深度学习,不需要海量行为数据,开发难度低,能够满足基础个性化推荐需求,和本项目定位匹配。
### 4.4 可视化模块设计
大屏统计逻辑:后端通过MyBatis编写分组统计SQL,按照所在地分组统计数量、按照标签分组、按照价格分组、按照销售情况分组,统计结果封装成ECharts需要的xAxis、data数组格式,传给前端,前端ECharts渲染饼图、柱状图、仪表盘、环形图。
## 五、系统实现
### 5.1 后端Spring Boot项目搭建
创建Spring Boot工程,pom.xml引入核心依赖:spring-boot-starter-web、mybatis-spring-boot-starter、mysql-connector-java、lombok等。application.yml配置数据库连接、端口、MyBatis映射文件路径。
项目包结构:entity(实体类)、mapper(MyBatis接口)、service(业务接口+实现类)、controller(接口控制器)、util(工具类,统一返回结果)。
统一返回工具类Result核心代码:
```
@Data
public class Result<T> {
private Integer code;
private String msg;
private T data;
public static <T> Result<T> success(T data){
Result<T> r = new Result<>();
r.setCode(200);
r.setMsg(\"成功\");
r.setData(data);
return r;
}
public static <T> Result<T> fail(String msg){
Result<T> r = new Result<>();
r.setCode(500);
r.setMsg(msg);
return r;
}
}
```
美妆商品Controller提供接口:新增、修改、删除、分页查询、根据标签查询推荐商品、统计图表数据接口。
### 5.2 管理员后台Vue实现
管理员后台侧边菜单包含:系统首页、美妆信息管理、用户管理、系统管理、我的信息。
系统首页页面布局为三栏大屏,中间展示系统标题、美妆总数、商品表格;左侧展示店名、所在地饼图、价格柱状图;右侧展示标签仪表盘、销售环形图,全部使用ECharts渲染。
美妆信息管理页面是Element UI表格,表单弹窗用来新增和修改美妆商品,支持图片上传。
### 5.3 用户前端Vue商城实现
用户前端首页放置美妆轮播图,导航栏:首页、美妆信息、美妆公告;美妆信息页面展示商品卡片,点击卡片跳转详情页;详情页展示图片、店名、现价、产地,收藏按钮,点击收藏写入collect表;推荐区域调用后端标签匹配接口,返回同标签美妆商品。
### 5.4 推荐功能核心实现
Service层推荐逻辑:获取用户最近收藏商品的tag,按tag模糊查询美妆表,排除当前商品id,返回推荐集合,核心伪代码:
```
// 根据标签推荐
List<Beauty> list = beautyMapper.selectByTag(tag);
// 排除当前商品
list = list.stream().filter(item->!item.getId().equals(beautyId)).collect(Collectors.toList());
return list;
```
## 六、系统测试
### 6.1 测试环境
后端:JDK1.8,Spring Boot 2.7,MySQL5.7;
前端:Vue2,Element UI,ECharts;
浏览器:Chrome浏览器。
### 6.2 功能测试
1. 管理员登录测试:输入正确账号密码进入后台;密码错误提示登录失败;未登录直接访问后台地址拦截跳转登录页;
2. 美妆信息管理测试:新增美妆商品,填写标题、价格、标签、上传图片,提交成功,大屏表格同步新增数据;修改、删除功能正常;
3. 可视化大屏测试:新增商品后,各个图表自动刷新统计数据,饼图、柱状图、环形图、仪表盘数据和数据库统计一致;
4. 用户端测试:用户注册登录,浏览商品,进入详情,点击收藏,收藏记录存入数据库;查看推荐商品,同标签商品正常推荐;公告查看功能正常;
5. 用户管理、公告管理:管理员新增公告,用户端公告页面可以查看;管理员可以删除注册用户。
### 6.3 测试结论
经过黑盒功能测试,系统所有需求功能都可以正常运行,页面跳转正常,接口返回数据正确,图表统计准确,标签推荐逻辑生效,没有严重BUG,满足毕业设计预期目标。系统可以稳定实现美妆商品管理、数据可视化、用户浏览收藏、标签推荐业务。
## 七、总结与展望
### 7.1 总结
本文设计并且实现一套基于Spring Boot的美妆产品推荐系统,系统采用前后端分离架构,后端Spring Boot+MyBatis+MySQL,前端Vue+ECharts。系统划分管理员和普通用户角色,管理员端实现美妆商品信息维护、用户管理、公告管理、可视化数据大屏统计;用户端实现商品浏览、详情查看、收藏、公告查看、基于标签匹配的个性化推荐。
在开发过程中,完成需求调研、数据库设计、代码开发、页面制作、系统测试全部流程。系统解决了美妆商品管理繁琐、缺少数据统计看板、用户选购缺少推荐的痛点,操作简单,部署方便,适合小型美妆平台使用,达到毕业设计的设计要求。
### 7.2 不足与展望
本系统推荐算法比较简单,仅基于标签匹配,没有引入用户行为权重、协同过滤算法,推荐精准度有限;没有加入评论、购物车、下单支付模块;图片存储使用本地存储,不适合大量图片上传。
后续优化方向:
1. 优化推荐算法,引入协同过滤算法,结合用户浏览时长、收藏、点击行为计算相似度,提升推荐准确度;
2. 增加商品评论、购物车、订单支付模块,完善电商闭环;
3. 将图片上传改为阿里云OSS对象存储,解决本地存储容量、访问性能问题;
4. 增加消息推送,上新美妆商品、公告推送至用户;
5. 增加肤质、功效筛选,细化美妆产品筛选维度,适配美妆行业特性。
## 参考文献
[1] 杨开振.深入浅出Spring Boot 2.x[M].北京:人民邮电出版社,2018.
[2] 尤雨溪.Vue.js官方指南[M].北京:人民邮电出版社,2017.
[3] 张三.MySQL必知必会[M].北京:人民邮电出版社,2020.
[4] 李刚.轻量级Java EE企业应用实战[M].北京:电子工业出版社,2019.
[5] 王松.MyBatis从入门到精通[M].北京:机械工业出版社,2018.
[6] 陈惠娟.基于标签的商品推荐系统设计与实现[J].电脑知识与技术,2022,18(20):123-125.
[7] 刘佳.基于SpringBoot+Vue的商品可视化管理平台设计[J].信息技术与信息化,2023(04):89-92.
如需定做或者获取更多资料,请联系QQ:375279829