基于Springboot + Vue 开发的前后端分离外卖点单系统
项目说明|目录结构|项目特点|技术选型|开发环境|项目截图|快速开始|注意事项|项目总结|如何反馈
- 采用SpringBoot、Shiro、MyBatis-Plus框架,开发的前后端分离外卖点单系统,采用Shiro进行权限管理,使用uni-app开发微信小程序,支持微信登录、Redis缓存、quartz定时、导出数据等功能。
- 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务
- 后台地址:http://localhost:8001(账号密码:admin/admin)
- 后台接口文档地址:http://localhost:8080/api/doc.html
- 微信小程序接口文档地址:http://localhost:8081/api/doc.html
您的star是我坚持的动力,感谢大家的支持,欢迎提交pr共同改进项目。
后台前端项目位于renren-ui下
小程序前端项目位于takeout_mp下
SQL文件位于根目录下的takeout_mysql8.sql,需要MYSQL8以上版本。
ps:请先运行后端项目,再启动前端项目。
take_out
│
├─renren-admin 美食元素后台管理后端服务
│ │
│ │
│ ├─modules 模块
│ │ ├─job 定时任务
│ │ ├─log 日志管理
│ │ ├─oss 文件存储
│ │ ├─security 安全模块
│ │ ├─sys 系统管理(核心)
| | └─takeout 外卖业务模块(核心)
│ │
│ └─resources
│ ├─mapper MyBatis文件
│ ├─public 静态资源
│ └─application.yml 全局配置文件
│
│
├─renren-api 美食元素小程序后端服务
│
├─renren-common 公共模块
├─renren-generator 代码生成器
│ └─resources
│ ├─mapper MyBatis文件
│ ├─template 代码生成器模板(可增加或修改相应模板)
│ ├─application.yml 全局配置文件
│ └─generator.properties 代码生成器,配置文件
│
├─renren-ui 美食元素后台管理Vue前端项目
├─takeout_mp uniapp微信小程序项目
- 友好的代码结构及注释,便于阅读及二次开发
- 实现前后端分离,通过token进行数据交互
- 支持动态权限修改,采用RBAC模型,前端菜单和后台权限实时更新。
- 提供CrudService接口,对增删改查进行封装,代码更简洁
- 页面交互使用Vue2.x,极大的提高了开发效率
- 完善的部门管理及数据权限,通过注解实现数据权限的控制
- 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
- 完善的代码生成机制,可在线生成entity、xml、dao、service、vue、sql代码,减少70%以上的开发任务
- 引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
- 引入Hibernate Validator校验框架,轻松实现后端校验
- 引入云存储服务,已支持:七牛云、阿里云、腾讯云等
- 引入swagger文档支持,方便编写API接口文档
- 新增AOP注解实现日志管理。
- 代码遵循阿里巴巴开发规范,利于开发者学习。
- 核心框架:Spring Boot 2.7.1
- 安全框架:Apache Shiro 1.9
- 持久层框架:MyBatis 3.5
- 定时器:Quartz 2.3
- 数据库连接池:Druid 1.2
- 日志管理:Logback
- 页面交互:Vue2.x
- 微信小程序:uni-app
开发工具 | 说明 |
---|---|
IDEA | Java开发工具IDE |
WebStrom或者VS Code | Vue开发工具IDE |
Navicat | MySQL远程连接工具 |
Another Redis Desktop Manager | Redis远程连接工具 |
FinalShell | Linux远程连接工具 |
HBuilder X | 编译微信小程序工具 |
开发环境 | 版本 |
---|---|
JDK | 1.8 |
MySQL | 8.0.29 |
Redis | 6.0.5 |
Maven | 3.8 |
NodeJs | 14.x.x |
-
虚拟机或者云服务器用docker拉取Minio镜像
docker pull minio/minio
安装镜像
-
docker run \ --name minio \ -p 9000:9000 \ -p 9090:9090 \ -d --restart=always \ -e "MINIO_ROOT_USER=minio" \ -e "MINIO_ROOT_PASSWORD=minio123" \ -v /opt/docker_minio/data:/data \ -v /opt/docker_minio/config:/root/.minio \ minio/minio server /data --console-address ":9090" --address ":9000"
-
登录(这里的ip地址填自己的就可以了)
-
创建一个名字为images的桶
- NodeJs版本不要安装太高,14.x最好
- 附上一个下载链接:https://nodejs.org/download/release/v14.21.3/node-v14.21.3-x64.msi
- 具体配置环境变量等请自行百度一下找一下教程,步骤很简单。
-
通过git下载源码
-
idea、eclipse需安装lombok插件,不然会提示找不到entity的get set方法
-
创建数据库takeout,数据库编码为UTF-8mb4
-
执行takeout_mysql8.sql文件,初始化数据
-
打开application-dev.yml文件,修改MySQL账号和密码、Redis的相关配置信息
-
在renren-api模块下,打开application.yml文件,修改微信小程序appid和secret配置
weixin: appid: secret:
-
在takeout目录下,执行mvn clean install
-
Eclipse、IDEA运行AdminApplication.java,则可启动项目【renren-admin】
-
配置好Nodejs环境之后就可以用WebStorm或者VsCode打开renren-ui文件夹(后台管理前端源代码)
-
打开终端输入
npm install
等待安装依赖完成后,输入
npm run serve
等待编译完成后,会自动打开页面,或者访问 http://localhost:8001/
- 账号密码:admin/admin
-
先去Dcloud官网下载Hubilder X 、以及微信开发者工具
-
Hbuilder X:https://www.dcloud.io/hbuilderx.html?source=javascriptc.com
-
微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html
-
然后安装打开Hbuilder X软件,打开takeout_mp文件夹(小程序的源代码)
-
打开微信开发者工具微信修改微信开发者工具的设置,将服务端口打开,不打开,HBuilder X在编译之后不会自动唤醒微信开发者工具
-
将图片中的AppId修改为你自己申请的小程序测试号AppId
-
完成了以上配置之后就可以启动小程序项目了
- 如果使用minio存储文件,需要先安装好minio
- 如果要运行小程序,需要先提前申请一个小程序开发测试账号
这个作为新手入门项目是十分不错的,项目所用的技术栈覆盖的也比较广,适合初学者学习。做的不好的地方请大家见谅,有问题的或者有好的建议可以私聊联系我。