本文是对b站黑马程序员瑞吉外卖项目的总结,实现流程以及简单部分不做详解,重点归纳难点以及易错点。(前面是对项目的介绍,可以直接略过 看第四点总结)

视频链接:https://www.bilibili.com/video/BV13a411q753/?spm_id_from=333.337.search-card.all.click&vd_source=add70c47f3e6f5b1ce1389891bb53fad

一. 项目介绍

本项目(瑞吉外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括系统管理后台和移动端应用两部分。

其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的菜品、套餐、订单等进行管理维护。

移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。

本项目共分为3期进行开发:

第一期主要实现基本需求,其中移动端应用通过H5实现,用户可以通过手机浏览器访问。
第二期主要针对移动端应用进行改进,使用微信小程序实现,用户使用起来更加方便。
第三期主要针对系统进行优化升级,提高系统的访问性能。

二.技术架构

项目属于前后端分离,前端使用H5页面以及vue框架构建页面,或者使用微信小程序开发。

网关使用的是Nginx代理服务器作为地址的转发,以及集群的Tomcat配置分发。

应用层主要就是使用Spring一系列技术,SpringSession是用来解决集群session共享的问题,数据层使用的MyBatis与数据库交互。

代码管理工具使用的是Git以及Maven仓库。

三.功能描述

移动端前台主要是使用H5页面以及微信小程序搭建前端页面,主要功能有:

  • 手机号登录
  • 微信登录
  • 历史订单
  • 菜品规格
  • 购物车
  • 下单
  • 菜品浏览

系统后台主要实现功能:

  • 分类管理
  • 菜品管理
  • 套餐管理
  • 菜品口味管理
  • 员工管理
  • 订单管理

四.总结归纳

首先在开发环境搭建时,直接按照视频步骤操作和导入相关文件即可,有几个需要注意的点:

1.记得把application.yaml文件里的数据库账号密码改成自己的。

2.前端代码和pom文件在原始资料中不全,建议直接复试day06的前端代码和pom文件。

先说一下这个项目每个业务的基本框架:

1.从课程资料导入实体类

2.创建mapper接口继承basemapper<>,并添加@mapper注解

3.创建业务层接口Service继承IService<>

4.创建业务层实现类ServiceImpl继承ServiceImpl<mapper,entity>,实现Service接口,添加@service注解

5.创建控制层Controller,添加@restcontroller,@requestmapping注解,通过@autowird注入service属性

这里再归纳一下项目中经常用到的post和get请求,还有@requestbody和@requestparam的区别:

get和post请求的区别:

1.GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,即所有的非ASCII字符都要编码之后再传输。

post请求对数据类型没有限制,也允许二进制数据。

2.在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制。

对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制

3.POST 比 GET 安全,因为数据在地址栏上不可见。通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。

然而从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输,只要在网络节点上抓包,就能完整地获取数据报文。
要想安全传输,就只有加密,也就是 HTTPS

@Requestbody和@requestparam的区别:

@ResquestBody要搭配@PostMapping使用,@ResquestParam要搭配@GetMapping使用。

注解@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理application/json、application/xml等类型的数据。

在GET请求中@RequestBody并不适用。

在post请求中,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,对于参数转化的配置必须统一。

可以使用多个@RequestParam获取数据,@RequestBody不可以

对request.getSession().setAttribute和request.getSession().getAttribute()的理解:

对内置的对象request就不多讲,就直接进入主题。void getSession()方法相当于得到一个session对象,而void setAttribute()和String Attribute分别是对属性赋值和得到属性值的方法。

request.getSession().setAttribute和request.getSession().getAttribute()就是分别对session对象赋值和得到对象属性的值。

@PathVariable注解:

@PathVariable 映射 URL 绑定的占位符
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过

@PathVariable(“xxx”) 绑定到操作方法的入参中。

一般与@RequestMapping(method = RequestMethod.GET)一起使用。

瑞吉外卖项目重难点及易错点知识点总结相关推荐

  1. 瑞吉外卖项目笔记+踩坑1——基础功能

     导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 1 ...

  2. 【SpringBoot项目实战+思维导图】瑞吉外卖①(项目介绍、开发环境搭建、后台登陆/退出功能开发)

    文章目录 软件开发整体介绍 软件开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型 技术选型 功能架构 角色 开发环境搭建 数据库环境搭建 创建数据库 数据库表导入 数据库表介绍 Ma ...

  3. 瑞吉外卖项目(一)软件开发流程设计及环境搭建

    第一章 软件开发整体介绍 软件开发流程 软件开发流程 需求分析:产品原型.需求规格说明书 设计:产品文档,ui界面设计,概要设计,详细设计,数据库设计 编码:项目代码,单元测试 测试:测试用例,测试报 ...

  4. 瑞吉外卖项目剩余功能补充

    目录 菜品启售和停售 菜品批量启售和批量停售 菜品的批量删除 菜品删除逻辑优化 套餐管理的启售,停售 套餐管理的修改 后台按条件查看和展示客户订单 手机端减少购物车中的菜品或者套餐数量(前端展示有一点 ...

  5. 黑马瑞吉外卖项目开发笔记

    目录 软件开发整体介绍 开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型展示 技术选型 功能架构 角色 开发环境搭建 数据库环境搭建 Maven环境搭建 1.直接创建maven项目( ...

  6. 瑞吉外卖项目 基于spring Boot+mybatis-plus开发 超详细笔记,有源码链接

    本项目是基于自学b站中 黑马程序员 的瑞吉外卖项目:视频链接: 黑马程序员Java项目实战<瑞吉外卖>,轻松掌握springboot + mybatis plus开发核心技术的真java实 ...

  7. 瑞吉外卖项目day01

    一.软件开发整体介绍 1.1 软件开发流程 需求分析:产品原型.需求规格说明书 设计:产品文档.UI界面设计.概要设计.详细设计.数据库设计 编码:项目代码,是单元测试 上线运维:软件环境安装.配置 ...

  8. 瑞吉外卖项目学习笔记:P1-项目介绍

    瑞吉外卖项目介绍 1.项目介绍 1.1开发步骤 1.2产品原型 1.3技术选型 1.4项目功能架构 1.5角色 1.项目介绍 1.1开发步骤 实现基本要求,移动端应用通过H5实现,用户可通过浏览器访问 ...

  9. 云服务器部署SpringBoot工程-瑞吉外卖项目

    Linux部署SpringBoot工程-瑞吉外卖项目 云平台:阿里云 终端软件:Tabby Terminal 部署项目项目: SpringBoot-瑞吉外卖 自己第一次从本地web项目搭建到云端部署发 ...

最新文章

  1. 知乎高赞:OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~
  2. 【数论】数论基础合集
  3. 有没有想过,自己手写一个连接池?
  4. 如何用堆栈和循环结构代替递归调用--递归转换为非递归的10条军规
  5. linux主机数据拷贝,linux 服务器之间拷贝文件
  6. ndows10同时打印多份文档,Windows10如何同时重命名多个文件
  7. 明明的随机数(洛谷-P1059)
  8. 纵览神经架构搜索方法
  9. Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci
  10. 全志 a33 linux qt,全志A33 lichee 搭建Qt App开发环境编写helloworld
  11. 如何选择大数据软件开发公司
  12. Writing A Threadpool in Rust
  13. delphi2007不使用msbuild的方法
  14. 智能决策支持系统(IDSS)
  15. 装配区5s管理制度推行办法
  16. 黑马旅游网---day1
  17. 简单图形的输入输出练习
  18. Yii2基本概念之——事件(Event)
  19. android root权限命令行,如何通过命令行取得安卓root权限
  20. 详解:字符转换函数(大写转小写,小写转大写)

热门文章

  1. 乐助手电脑版 v3.0.4.33284 官方版
  2. 核心网在无线通信中的王者地位
  3. jquery判断是否按下Enter(回车)和TAB键
  4. Uniapp中使用Echarts
  5. Microsoft Word 教程「4」,如何在 Word 中应用样式、主题?
  6. node.js毕业设计安卓手机银行客户端APP(程序+APP+LW)
  7. 通过Ping检测网络故障的典型次序和IPconfig命令的使用
  8. 自媒体如何多平台发文章?
  9. 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度
  10. 自定义下拉回弹View-掌握View冲突处理