叮当外卖单体项目SpringBoot+Mybatis-Plus+Redis(附源码)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 这是一篇SpringBoot+Mybatis-Plus的单体项目,并且还带有Spring+Mybatis的单体项目,通过本项目可以让你快速掌握简单的CRUD操作和Redis数据缓存操作,定时组件的使用,图片的上传与下载,在Linux下部署项目。

个人推荐:

📢📢📢 前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下 "通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 点击跳转到教程

在这里插入图片描述

1.学习资源

视频资源: 黑马程序员瑞吉外卖

在这里插入图片描述

源代码资源:
① 黑马程序员瑞吉外卖视频源码链接: https://pan.baidu.com/s/1ySusvyYr2lasUPpCYY2zNg?pwd=n2v4 提取码: n2v4
② 我编写的叮当外卖是在黑马瑞吉外卖的基础上进行简单的改进,在数据库的CRUD的操作上和瑞吉外卖一致,主要对该项目的图片上传方式进行了修改,采用七牛云方式,并且增加垃圾级清理模块,后台管理端数据删除采用逻辑删除,垃圾清理采用定时组件Quartz每周定时清理逻辑删除后的数据,和每日定时删除七牛云里的垃圾数据。
前台和后台源码 https://github.com/itguye/dingdang_take_out.git
垃圾清理源码: https://github.com/itguye/dingdangtakeout_quartz_clearpictures.git

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.项目概述

项目分为后台管理端,前台移动端和垃圾清理端:

(1) 后台管理端

在这里插入图片描述

(2) 前台移动端

在这里插入图片描述

(3) 垃圾清理端

清理Redis中的缓存和七牛云的垃圾数据:
在这里插入图片描述
清理数据库和七牛云中的垃圾数据:
在这里插入图片描述

### 3.技术栈

后台管理端和前台移动端主要使用SpringBoot+Mybatis-Plus实现数据库的CRUD操作,项目中的图片上传与下载采用七牛云,数据缓存使用Redis,共二种方式 Spring Data Redis和SpringCache,垃圾清理端主要采用Spring+MyBatis实现数据的查询与删除操作,采用Quartz定时组件实现每周星期天晚上23点清理数据库中的垃圾数据(被后台管理端删除后的数据,采用了逻辑删除),每日晚23点清理Redis缓存数据(用于记录七牛云中所有上传图片和上传到数据库中图片的数据)和七牛云中的垃圾数据。
相关知识点如下:
① SpringBoot和Spring
② MyBatis 和 Mybatis-Plus
③ Redis
④ Spring Data Redis和SpringCache
⑤ Mysql
⑥ 七牛云
⑦ Quartz定时组件

在这里插入图片描述

### 4.服务器环境搭建(Linux环境)

安装可参考下面三篇博客:
Linux centos7.0搭建Java开发环境(保姆级教程),
Linux centOs7.0安装宝塔面板(保姆级教程)
Linux安装maven(详细教程)
服务器端需要安装如下软件:
① JDK
② Tomcat
③ 宝塔面板
④ Redis
⑤ Mysql
⑥ Maven

Redis和MySql我是通过宝塔面板进行安装。
在这里插入图片描述

七牛云

访问七牛云官网 https://www.qiniu.com/,你需要注册用户,并且实名认证,并申请空间,然后将图片上传到空间即可

在这里插入图片描述
所需上传图片放在项目中的图片资源里
在这里插入图片描述

5.软件部署

(1) 数据库部署

这里我采用的是宝塔面板部署数据库,数据库的SQL文件放在项目中的db文件下。

添加数据库的账号和密码就是你的远程服务器的数据库账号密码(意思就是在服务器中新建了一个mysql用户)
在这里插入图片描述
导入数据库的SQL
在这里插入图片描述
在这里插入图片描述
sql文件存放在项目的db文件下:
在这里插入图片描述

用户授权(用户授权需要安装phpMyAdmin软件)
在这里插入图片描述
登入的用户名和密码就是你的root账户
在这里插入图片描述
创建的数据库需要远程连接权限和新建用户对新建数据库的增删改查权限
在这里插入图片描述
新增用户权限,这里的用户就是自己新增的用户(业务程序访问数据库的用户)
在这里插入图片描述

在这里插入图片描述

(2) 相关参数配置

这里主要讲解对前台和后台部分的配置,垃圾清理部分的配置只有mysql和Mybatis,只需要修改成自己的配置参数即可,不在演示。
  • 项目clone 或下载源码
git clone https://github.com/itguye/dingdang_take_out.git

在这里插入图片描述

  • IDEA打开项目(Maven导包需要一些时间)

在这里插入图片描述

  • 修改项目配置文件application.yaml

服务端口号与数据库配置:
在这里插入图片描述

Redis和mybatis-plus的配置:
在这里插入图片描述

  • 文件上传与下载七牛云配置

修改七牛云工具类的配置:
在这里插入图片描述

修改如下参数:
在这里插入图片描述

accessKey和secretKey对于七牛云个人中心密钥管理中心的AK和SK:

在这里插入图片描述

bucket对于七牛云中的空间名

在这里插入图片描述

new Configuration(Zone.zone2()); 表示存储在华南区域,其他区域分别为Zone.zone0华东 ,Zone.zone1华北,Zone.zone2华南,根据你选择的区域进行配置即可

在这里插入图片描述

在这里插入图片描述

  • 图片的游览是直接访问七牛云(外链),需要修改成你的外链主机名
在七牛云中复制外链接如 http://rfuczc8jn.hn-bkt.clouddn.com/00874a5e-0df2-446b-8f69-a30eb7d88ee8.png,我的 外链接主机名为rfuczc8jn.hn-bkt.clouddn.com ,在前端需要修改成你的外链接主机名,不然无法获取你七牛云里的图片,外链接就是直接通过互联网就可以进行访问。

在这里插入图片描述

你可以通过全局搜索进行快速定位
在这里插入图片描述
前端如下几处需要进行修改:

后台管理端:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
前台移动端:
在这里插入图片描述
在这里插入图片描述

备注:垃圾清理部分的配置就是修改一下Redis和mysql的配置即可,这里不再演示了。

(3) 程序部署

项目的前台和后台是同一个项目,垃圾清理是另一个项目,前一个项目打包方式为Jar方式,运行非常简单通过 java -jar 项目名 运行即可,当然这部分和视频中的一致可以通过Shell脚本的方式进行部署,后一个项目打包方式为war包,将war放入到Tomcat的webapps中即可运行,二个项目都是通过Maven构建,所以生成jar/war只需要通过mvn package进行打包,然后将打包后的文件上传到服务器中即可,如果是前一个项目通过shell脚本执行的话,将修改后的代码push到托管代码平台上(gittee/github)上,服务器端先clone项目,如果下次有更新直接执行脚本即可更新项目。

shell存放在项目中的shell文件下:
在这里插入图片描述

  • 第一个项目的部署(后台服务端与前台服务端叮当外卖)

通过脚本的方式执行程序(需要先在Linux相应文件下git clone自己的项目,更新后执行下面的脚本即可)
在这里插入图片描述
当然你也可以通过执行 java -jar 项目 的方式执行项目
在这里插入图片描述

  • 第二个项目的部署,垃圾清理

只需要将生成后的war包放入到Tomcat下的webapps中即可
在这里插入图片描述

6.软件预览

(1) 后台管理端

后台管理端访问路径为: http://124.220.28.236:8089/backend/page/login/login.html(账号zhangsan,密码:123456)
  • 后台登入

在这里插入图片描述

  • 员工管理

在这里插入图片描述

  • 分类管理

在这里插入图片描述

  • 菜品管理(批量处理业务视频中未编写,这里我编写了的)

在这里插入图片描述

  • 套餐管理(批量处理业务视频中未编写,这里我编写了)

在这里插入图片描述

  • 订单详情(视频中该本分业务未编写,这里我编写了)

在这里插入图片描述

(2) 前台移动端

游览器访问需要手机适配设置(按F12适配手机),访问路径: http://124.220.28.236:8089/front/page/login.html(手机号:13812345678,点击获取验证码,进行登入即可)

在这里插入图片描述

  • 登入页面

在这里插入图片描述

  • 服务大厅

在这里插入图片描述

  • 订单结算页面

在这里插入图片描述

  • 个人中心

在这里插入图片描述

  • 地址管理

在这里插入图片描述

  • 历史订单

在这里插入图片描述

(3) 垃圾清理端(war包)

垃圾清理打包成war放入Tomcat的webapps中,由于定时组件的原因会根据core表达式在某一个具体时间执行,共二个任务,任务1执行清理Redis缓存和七牛云的垃圾数据,任务2执行清理数据库中和七牛云的垃圾数据。

清理Redis中的缓存和七牛云的垃圾数据:
在这里插入图片描述
清理数据库和七牛云中的垃圾数据:
在这里插入图片描述

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
springboot基于人工智能和自然语言理解技术的医院智能导医系统源码
智能导诊系统可为患者提供线上挂号智能辅助服务,患者根据提示手动输入自己的基本症状,通过智能对话方式,该系统会依据大数据一步步帮助患者“诊断”,并最终推荐就医的科室和相关专家。患者可自主选择,实现“一键挂号”。这一模式将精确的导诊服务前置,从源头上让医疗服务更高效。
22 2
|
8天前
|
NoSQL Java Redis
springboot搭建后台框架 (二)整合Redis
springboot搭建后台框架 (二)整合Redis
16 0
|
8天前
|
SQL Java 关系型数据库
SpringBoot整合MybatisPlus
SpringBoot整合MybatisPlus
13 0
|
23天前
|
消息中间件 NoSQL Java
Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】
Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】
43 1
|
5天前
|
Java 数据库连接 数据库
百度搜索:蓝易云【SpringBoot+MyBatisPlus实现读写分离】
由于篇幅限制,以上是简要的步骤概述,实际的实现细节可能会更加复杂,具体实现需要根据项目的具体需求和架构来调整。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
137 7
|
6天前
|
NoSQL Java Redis
Spring boot 实现监听 Redis key 失效事件
【2月更文挑战第2天】 Spring boot 实现监听 Redis key 失效事件
28 0
|
7天前
|
数据采集 机器学习/深度学习 移动开发
uniapp+springboot医院智能导诊系统源码,自动兼容小程序与H5版本
技术架构:Uniapp+springboot+redis+mybatis plus+mysql+RocketMQ
23 0
|
8天前
|
NoSQL Java Redis
【极光系列】springboot集成redis
【极光系列】springboot集成redis
31 3
|
8天前
|
Java 关系型数据库 MySQL
docker 部署springboot项目,连接mysql容器
docker 部署springboot项目,连接mysql容器
22 0
|
10天前
|
开发框架 Java 测试技术
Spring Boot 项目中使用 `@Autowired` 注解,合理吗?
Spring Boot 项目中使用 `@Autowired` 注解,合理吗?
95 1
Spring Boot 项目中使用 `@Autowired` 注解,合理吗?