这是一个较为完整功能的版本,实现了一个外卖平台基本的后台人员菜品套餐管理和前台点餐功能。但是暂不包含后续配送功能, 本代码遵循Apache-2.0 license,可以作为学习用途使用,亦可做于其它用途。
该项目Java版本为jdk8
,主要技术有Spring Boot
+ Mybatis Plus
,数据库使用MySQL
,使用Redis
缓存优化查询。
这算是我接触的第一个Spring Boot项目,作为学习的一个记录,我将每次的提交都在此仓库中,学习素材取自
黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis
plus开发核心技术的真java实战项目。
相比较原教程,我做了代码优化和格式上的改进,对于短信验证,我修改成了邮箱验证的登陆方式。考虑到复杂性,项目也暂未使用主从分离设计和前后端分离,
可能存在前后端登陆越界的问题。但依然是正在学习这个项目的同学的一个参考,希望大家都能顺利完成这个项目。
对于熟悉Spring Boot项目的同学,以下说明略看即可,以下说明为了保证每个人都能顺利构建项目,所以会有些冗余。
- JDK8 本项目由JDK8构建,请在运行本项目前确保您的电脑已安装JDK8,若您使用的是IntelliJ
IDEA,您可以很方便的在
Project Structure
中配置JDK版本。 - MySQL 本项目使用MySQL数据库,请在运行本项目前确保您可以顺利连接到MySQL数据库。
- Redis 本项目使用Redis缓存,请在运行本项目前确保您可以顺利连接到Redis数据库,如果实在不愿意使用Redis,请下载v1.0版本 的代码, 或在本项目的release/basic-functionality 分支中下载代码,该分支为本项目的基础功能分支,不包含Redis缓存功能。 Windows用户使用和配置可以参考:在 windows 上安装 Redis。
- Maven 本项目使用Maven构建,初次打开项目时,IntelliJ IDEA会自动下载Maven依赖,若您的IntelliJ
IDEA没有识别到Maven,请右键项目,选择
Add Framework Support
,选择Maven
,然后点击OK
。 若在Maven下载依赖时出现问题(大部分国内用户都会出现这个问题),为了一劳永逸,建议您在IntelliJ IDEA的File
->Settings
->Build,Execution,Deployment
->Build Tools
->Maven
中配置Maven。 通过在您电脑用户目录下的.m2
文件夹中找到settings.xml
文件(若没有则创建一个该名的文件),在<Settings>
内部添加以下内容:
<settings>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
再在该设置目录下的User Settings File
中选择刚刚创建的settings.xml
文件,勾选Override
,点击OK
即可,再次重启IntelliJ
IDEA,Maven依赖就会自动下载了。
若pom.xml
依然爆红,尝试再次加载。
-
数据库配置
无论你使用什么数据库管理工具,请在数据库中创建一个容易被记住的数据库名,例如rikky_takeaway
,然后在导入本仓库的sql
文件夹中的db.sql
文件。 之后需要回到本项目的src/main/resources
目录下,找到application.yml
文件,补充数据库的连接信息。 -
Redis配置
当你已经安装好Redis并且可以顺利连接到Redis数据库时,需要回到本项目的src/main/resources
目录下,找到application.yml
文件,补充Redis的连接信息。 -
邮箱配置
该邮箱作为发送验证码的用途,在这里我建议使用QQ邮箱,因为QQ邮箱的SMTP服务是免费的,而且不需要进行额外的配置。SMTP服务的配置信息可以在QQ邮箱的设置中找到, 登陆你的QQ邮箱,点击左上角的设置按钮,选择设置
,选择账户
,找到开启POP3/SMTP服务
,经过一系列的确认后, 你将获得一个授权码
,这个授权码就是你的邮箱密码password
,你可以在application.yml
中的邮箱配置信息中配置它。 -
文件存储位置配置
该系统由于需要存储用户上传的图片,所以需要配置一个文件存储的位置,建议在IntelliJ IDEA中右键img
文件夹,Copy Path
,选择复制绝对路径, 然后在application.yml
的文件存储位置配置信息中配置它。
自此,配置基本完成,你可以顺利在本地运行项目了,通过运行在src/main/java/com/rikky
目录下的RikkyApplication.java
即可启动本项目。
后台登陆默认账号为admin
,密码为123456
。
前台用户界面为手机适配,电脑直接打开可能会出现排版错乱,所以请使用手机浏览器打开,
或者使用开发者工具模拟手机浏览器打开。使用手机访问需要使得你的电脑和手机处于同一局域网
下,获取电脑ip地址教程
(Linux/Macos用户自己查)。
然后在手机浏览器中输入你的电脑的IP地址:端口号
即可访问。 而电脑推荐使用Chrome内核的浏览器,打开方法为在浏览界面按下F12
,
然后点击Toggle device toolbar
(通常情况下快捷键为ctrl + shift + m
),选择iPhone 6/7/8
,即可模拟手机浏览器打开。
对于希望在服务器上运行,同理修改配置文件(注意文件存储位置配置信息)后在IntelliJ IDEA终端输入:
mvn package -Dmaven.test.skip=true
即可完成打包,云服务器部署请自行利用互联网搜索。
- 后台管理系统默认链接: http://localhost:8080/backend/index.html
- 前台管理系统默认链接: http://localhost:8080/front/index.html
本项目是一个外卖系统,用于学习 Spring Boot 的开发,功能较为受限,但是也有一些功能,例如:
- 用户注册
- 用户登录
- 用户地址管理
- 用户订单管理
- 用户购物车
- 员工管理
- 菜品管理
- 菜品分类管理
- 套餐管理
- 员工订单管理
这算是我接触的第一个Spring Boot项目,作为学习的一个记录,我将每次的提交都在此仓库中,学习素材取自 黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目。 相比较原教程,我做了代码优化和格式上的改进,对于短信验证,我修改成了邮箱验证的登陆方式。考虑到复杂性,项目也暂未使用主从分离设计和前后端分离, 可能存在前后端登陆越界的问题。但依然是正在学习这个项目的同学的一个参考,你遇到的坑,可能是我已经在这里踩过的,但无论如何,都希望大家都能顺利完成这个项目。
贡献是使开源社区成为一个学习、激励和创造的奇妙场所的原因。我们非常感谢您的任何贡献。
如果你有什么建议可以让这个项目变得更好,请fork该版本并创建一个PR。 如果在学习中遇到了一些困难,你也可以在这里提交一个issue,我会尽快回复你。 如果它对你有帮助,请star💫它,再次感谢!
关于如何贡献的更多信息,请查看CONTRIBUTING.md。
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the ApacheApache-2.0 license.
See LICENSE.txt
for more information.
riverify - @riverify - https://github.com/riverify
项目链接: 🔗https://github.com/riverify/rikky-takeaway
以下资源亦可帮助学习: