java自学阶段二:JavaWeb开发--day80(项目实战2之苍穹外卖)

《项目案例—黑马苍穹外卖》
目录:

  1. 学习目标
  2. 项目介绍
  3. 前端环境搭建(前期直接导入老师的项目,后期自己敲)
  4. 后端环境搭建(导入初始项目,新建仓库使用git管理项目,新建数据库,修改登录功能,使用Swagger方便后端接口测试)
  5. 后端功能开发
  6. 附录(文档代码资源路径)

一、学习目标:
这是一个前后端分离的项目,使用了Vue+Springboot技术,希望学完能达到的效果:

  • 熟悉项目开发流程:希望借助这个项目,更加熟悉项目开发流程
  • 提高技术能力:了解一些新知识、新技术:待补充;

二、项目介绍:
1)项目简介:这是一个给餐饮店定制的小系统,包含:
商家(管理端)有网页,管理菜品、掌握运营数据之类的;
点外卖的用户(用户端)用的是小程序,负责下单、支付等;

2)理论上的开发流程和角色分工:(牛人全栈…或者公司就是要多面手…)
在这里插入图片描述
3)项目架构
1.技术选型:
在这里插入图片描述
2)功能模块
在这里插入图片描述

三、前端环境搭建
1)直接复制老师提供的前端环境到一个没有中文的本地路径,启动nginx就好,老师并没有带着全新手敲一遍,看视频后期有教,后期补前端知识。
在这里插入图片描述
双击nginx.exe,启动后,在浏览器输入:localhost:80可以登录
在这里插入图片描述
四、后端环境搭建
1)同样是直接导入老师的初始项目(老师说的也有道理,新去一家公司也不一定是全新开始的,都是直接接手公司的项目的)
复制项目到一个没有中文的路径:
在这里插入图片描述
Idea打开后,点击左边的maven,然后执行编译
在这里插入图片描述
编译成功;
注:项目导入,数据库链接可能和老师的不一样,需要在server模块里修改yml文件
在这里插入图片描述

2)该项目结构用了maven分模块:
在这里插入图片描述
在pojo层的一些新的概念:但是真的分不清,真的很有必要划分这么细吗…
在这里插入图片描述
3)仓库构建:

  • 选择VCS,点击创建Git本地仓库,然后点击新建
    在这里插入图片描述
    菜单栏会出现git的控件
    在这里插入图片描述
    把项目提交到本地仓库:
    在这里插入图片描述
    提交完之后,会在项目的根目录生成一个.git文件夹,这里就记录了git的数据,也可以右键打开git bash,用git命令对版本进行操作了;
    在这里插入图片描述
  • 创建Git远程仓库
    打开gitee,点击新建仓库就好新建
  • 将本地文件推送到Git远程仓库:复制远程仓库的地址,然后在url栏位输入,最后点击push就好。
    在这里插入图片描述
    推送完成后,gitee就会有对应的记录
    在这里插入图片描述
    4)数据库构建:导入sql文件,在数据库执行就好;
    在这里插入图片描述
    数据库里会写入基础数据,后续就可以用这个数据与前面导入的前端页面做联调测试了
    在这里插入图片描述
    5)前后端联调:
    前端页面发起登录请求,请求controller,controller请求service,service调取mapper查询数据库信息,有就返回数据,没有就报错。
    在这里插入图片描述
    项目里有些特点,可以用断点调试看看执行过程:
    controller:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    全局异常捕获器:
    在这里插入图片描述
    6)配置Nginx反向代理:
    这个项目里,老师是直接配置好了。实际上我们自己的项目,是需要配置反向代理的。
    前端的请求地址是这个:http://localhost/api/employee/login
    后端的接口地址是这个:http://localhost:8080/admin/employee/login
    在这里插入图片描述
    中间需要走一个nginx反向代理,由nginx去请求后端,从而返回数据。一般实际项目很少让你前端直连后端的,好处有三个:
    1.负载均衡。前端很多用户发起请求,后端配置了多台服务器的话,可以由nginx来动态分配访问哪一台;
    2.提高访问速度。一般我们请求后,会有页面缓存数据存在nginx里,你关掉重新请求时,可以不用再链接到后端服务器,直接nginx会将缓存数据返还的;
    3.安全。一般很少让你前端直连后端的,后端服务器都在内网,通过请求nginx,nginx走内网;

配置反向代理和负载均衡:在nginx的conf文件夹,选择nginx.conf文件,进行配置修改:
在这里插入图片描述
在这里插入图片描述
7)登录功能完善:
当前数据库的员工表格信息,密码是明文,需要修改为密文存储:
在这里插入图片描述
当前老师教的是MD5加密(16字节,32位的加密方式),但看老师的描述,好像不是很强的加密:这种加密是单向不可逆的;(百度—MD5算法由于其安全性较低,通常不建议用于密码存储或校验,但在某些旧系统或特定场景下可能仍会使用,MD5算法的安全性较低,容易受到碰撞攻击,因此在现代应用中,更推荐使用SHA-256或更高版本的哈希算法,并结合盐值(salt)和密钥扩展(如bcrypt、PBKDF2等)来安全地存储和校验密码。
在这里插入图片描述
修改:
1.想要将数据库里存储的明文密码去掉,改为这个明文密码加密后的密文密码存储;(这里先直接复制粘贴PPT上的密文进去,正常应该是插入数据的时候对密码进行处理的);
在这里插入图片描述
2.加密后,用123456就登录不上了,会捕捉到异常,然后异常会被全局异常捕捉器捕捉,提示报错。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现异常(密码错误的自定义异常/有常量类记录异常类型),会被sky-server.handler.GlobalExceptionHandler捕捉,然后抛给前端;

3.必须得对Java类进行修改,修改类:
在这里插入图片描述
----但是这种自己写不出来,只是复制粘贴的;—

注:(IDEA)项目过程中如果很忙,一时之间没有来得及处理的话,可以写个TODO,会记录为待办的;
在这里插入图片描述
8)导入接口文档:
因为现在一般都是前后端分离的方式了。所以,前端和后端讨论拉通后,会定义出一份接口文档,然后大家按照这份接口文档去开发各自前后端的功能;

老师视频用的是Yapi在线文档,但是因为网址打不开,就用了ApiFox了,导入路径如下,点击+号,选择导入,选择Yapi的方式,添加老师给的苍穹外卖管理端接口.json和用户端.json就好
在这里插入图片描述
在这里插入图片描述
导入后,所有的接口都添加进来了:
在这里插入图片描述
9)Swagger文档
我们根据ApiFox的接口文档开发好功能后,就需要自己去调一下接口做测试。—虽然我感觉可以直接用ApiFox来操作了。。。但是还是听老师的吧。

Swagger是在java代码中,添加配置类信息,这样就可以项目运行的时候,可以生成在线的接口文档,并且可以做在线调试,例如:

配置:
1.在Pom.xml文件中引入依赖;
在这里插入图片描述
2.在配置类WebMvcConfiguration中,加入配置:
在这里插入图片描述
3.输入网址:http://localhost:8080/doc.html ,即可打开在线文档,然后可以自己去调用测试
在这里插入图片描述
有个问题,就是这里的在线文档都是英文的,其实没有啥特殊注释的,所以可以对Controller,方法等地方添加Swagger的特定注解,相当于注释的用法了:
在这里插入图片描述
添加完之后,显示的文档如图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附录:
视频地址:【黑马程序员Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战】 https://www.bilibili.com/video/BV1TP411v7v6/?p=12&share_source=copy_web&vd_source=89f654dc7fa9265fa620ccd864513b3d
资料地址:
项目地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值