(苍穹外卖 DAY1)部署、表结构、登录功能解读

写在前面

在学习苍穹外卖过程中,弹幕常有 “为什么我打不开?为什么我没有输出?”的疑问,针对这些我也在学习过程中同样遇到的问题,万分感激在弹幕中找到了答案,并作出这系列汇总。本文内容是基于弹幕对苍穹外卖项目的实施与补充,仅供学习与分享之用,如有侵权请联系删除~

2024-07-03


开发环境

IDEA2021.3.1、JDK17、Navicat Premium 15、Gitee

部署远程仓库 => 创建数据库 (跟着视频做就完了)

目录

开发环境

数据库各表结构总览

连接数据库

前端数据传到后端如何操作?

JwtProperties类

employeeLoginVO

本项目为什么要使用ngnix服务?

为什么不直接在前端进行加密?

导入接口文档

使用knife4j实现swagger生成接口文档测试

        加入 knife4j 相关配置

        设置静态资源映射

常用的Swagger的注解

        用在controller上

        用在方法上(如图为 员工登录方法)

        用在类、属性上


数据库各表结构总览

连接数据库

创建好数据库后,双击ngnix开启代理,在src/main/resources/application-dev.yml的该文件中修改数据库账号密码:

用maven完成编译

在浏览器导航栏输入localhost+回车,启动!!!!


前端数据传到后端如何操作?

请求发送到后端 ==> 调用controller ==> 调用service ==> 调用mapper ==>

将用户名作为参数,在数据库查询对应的用户 ==> 如果有该用户 ==> 判断状态未锁定 ==> 返回实体对象 ==> 生成JWT令牌 ==> 封装成VO对象,返回前端

体现了三层架构思想:

JwtProperties类

在生成JWT令牌这一步骤中,可以看到注入的JwtProperties类

在JwtProperties类中:

  • @Component将这个类标记为 Spring 组件,使其能够被 Spring 容器扫描和管理。
  • @ConfigurationProperties(prefix = "sky.jwt"):指定从配置文件中读取的属性前缀为 sky.jwt,使得该类的属性与配置文件中的参数绑定。
  • @Data:使用 Lombok 提供的注解,自动生成该类的 getter、setter、toString、equals 和 hashCode 方法。

在src/main/resources/application.yml该文件中可见相应配置

employeeLoginVO

生成JWT令牌生成token后,采用builder封装VO,返回给前端

来看看employeeLoginVO

主要目的:

  • 封装登录返回数据
    • 将员工登录后的关键信息(如 iduserNamenametoken)封装成一个对象,以便于在前后端进行数据传输
  • 便于序列化和反序列化
    • 实现 Serializable 接口,便于对象的序列化(例如,将对象转换为字节流传输)和反序列化。

注解:

本项目为什么要使用ngnix服务?

1)访问ngnix层,可以缓存接口返回数据,不必反复请求后端

2)将大量请求按指定方式均衡的分配给集群中的每台服务器

3)隐藏后端服务器的真实地址


前面都是帮助理解,不需要编写代码

在用户登陆时,初始项目中,数据库采用明文记录用户密码,这样并不安全。

所以,我们需要对客户的密码进行加密,根据上述的三层架构思想,应该对实现类进行修改。

  1. 修改数据库中明文密码,改为MD5加密后的密文
  2. 修改Java代码,前端提交的密码进行MD5加密后再跟数据库中密码比对

仅展示了员工登录功能代码,对前端明文密码MD5加密存入数据库应属于注册功能~

为什么不直接在前端进行加密?

  1. 安全性问题:密钥泄露;
  2. 加密算法的实施:计算机性能问题;
  3. 数据传输的安全性:传输过程泄露;

后端优势:

  1. 更安全的环境:访问控制、密钥安全性更高;
  2. 集中控制和更新:加密策略一致性、便于维护;
  3. 简化前端开发:减少负担、提高性能;

以上是修改员工登录功能,编写代码部分结束~

导入接口文档

使用YApi Pro:YApi Pro-高效、易用、功能强大的可视化接口管理平台

(导入步骤跟着视频做就完了~)


使用knife4j实现swagger生成接口文档测试

在sky-server/pom.xml该文件中导入依赖(一般是固定写法)

在src/main/java/com/sky/config/WebMvcConfiguration.java文件中完成配置

加入 knife4j 相关配置

.apis(RequestHandlerSelectors.basePackage("com.sky.controller.admin"))
配置扫描controller的地址
设置静态资源映射

设置静态资源映射,如果不设置,在MVC框架里,会认为你请求的地址是controller

常用的Swagger的注解

用在controller上

用在方法上(如图为 员工登录方法)

用在类、属性上

在浏览器输入地址 http://localhost:8080/doc.html ,启动 !!!!!!

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值