苍穹外卖项目笔记(2)

1 Nginx 反向代理和负载均衡

1.1 概念

【Tips】可以看到前端请求地址和后端接口地址并不匹配,这里涉及到 nginx 反向代理 ,就是将前端发送的动态请求由 nginx 转发到后端服务器

使用 nginx 作反向代理的好处: 

  • 提高访问速度(在请求 nginx 这一层可以做缓存)
  • 进行负载均衡(负载均衡:把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器)
  • 保证后端服务的安全

1.2 配置

1.2.1 nginx 反向代理的配置方式

【Tips】通过proxy_pass指令,将我们匹配到的前端请求(/api/) 转发到我们指定的后端的这个接口地址(http://localhost:8080/admin/)

1.2.2 nginx 负载均衡的配置

【Tips】将匹配到的请求平均的转发到 webservers 组里的后端服务器中

1.2.3 nginx 负载均衡策略

2 完善登录功能 

当前登录存在问题:员工表中的密码是明文存储,安全性太低

解决办法:采用MD5加密方式对明文密码加密后存储,提高安全性

操作步骤:

① 修改数据库中明文密码,改为MD5加密后的密文:

123456  ----->  e10adc3949ba59abbe56e057f20f883e

② 修改Java代码,前端提交的密码进行MD5码加密后再跟数据库中密码比对

        //密码比对// TODO 后期需要进行md5加密,然后再进行比对// 对前端传过来的明文密码进行 md5 加密处理password = DigestUtils.md5DigestAsHex(password.getBytes());if (!password.equals(employee.getPassword())) {//密码错误throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);}if (employee.getStatus() == StatusConstant.DISABLE) {//账号被锁定throw new AccountLockedException(MessageConstant.ACCOUNT_LOCKED);}

3  导入接口文档

        前后端分离开发方式要求开发之前先将接口定义好,然后前后端开发人员才能并行开发。所以我们需要将项目接口导入到接口管理平台,为后续业务开发做准备。

3.1 确认前后端分离开发流程

【注】接口确定了前后端交互的过程,包括请求的地址、方式,前端提交给后端的数据格式以及后端响应给前端的数据格式等

3.2 操作步骤

        将项目接口导入YApi(接口管理平台)

步骤1 登录YApi

步骤2  新建项目并导入文件

 

步骤3 查看接口

        选择接口项,即可查看接口分类即功能,同理,导入用户端的接口文档 

4 Swagger

4.1 介绍

能够帮助后端生成接口文档,并可以进行在线接口测试

4.2 使用方式

① 导入 knife4j 的 maven 坐标

② 在配置类中加入 knife4j 相关配置

③ 设置静态资源映射,否则接口文档页面无法访问

验证:登录localhost:8080/doc.html,可以查看到扫描到的类的方法以及添加的文字描述等

 点击进入左侧方法,即可调试:

【注】Swagger 和 YApi 的区别

1、YApi 是设计阶段使用的工具,用于管理和维护接口 

2、Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

4.3 常用注解

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

@Data
@ApiModel(description = "员工登录时传递的数据模型")
public class EmployeeLoginDTO implements Serializable {@ApiModelProperty("用户名")private String username;@ApiModelProperty("密码")private String password;}
@Api(tags = "员工相关接口")
public class EmployeeController {......
}
@ApiOperation(value = "员工登录")
public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {......
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/150314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系列一、堆里面的分区:Eden、From、To、老年代各自的特点

一、堆里面的分区&#xff1a;Eden、From、To、老年代各自的特点 堆是对象共享的区域&#xff0c;也是垃圾回收器主要工作的地方。主要分为新生区、养老区和元空间&#xff0c;而这三块地方中GC主要工作在新生区和养老区&#xff0c;其中新生区占1/3、养老区占2/3&#xff0c;新…

开源与闭源软件的辩论:对大模型技术发展的影响

目录 前言1 开源软件的优缺点1.1 开源软件的优点1.2 开源软件的缺点和挑战 2 闭源软件的优缺点2.1 闭源软件的优点2.2 闭源软件的缺点和挑战 3 大模型发展会走向哪一边结语 前言 近期&#xff0c;特斯拉CEO马斯克公开表示&#xff1a;OpenAI不该闭源&#xff0c;自家首款聊天机…

Qt http

文章目录 前言1. 定义的接口2.connect信号槽3. get4. get 下载文件5. post 总结 前言 /* 1.请求报文&#xff1a; 请求报文是由客户端发送给服务器&#xff0c;用于请求特定资源或执行特定操作。它由以下几个部分组成&#xff1a; 请求行&#xff1a;描述了请求的方法、目标资源…

海外代理IP如何找到靠谱的?

现在市面上有很多代理服务商&#xff0c;大家可以根据自己的需求选择一个适合自己业务的的IP代理服务商&#xff0c;现在也有一些免费的&#xff0c;但如果力求稳定安全&#xff0c;还是选择付费的。 这里提醒一句&#xff0c;在买代理IP时最好找这种可以免费试用的&#xff0…

虾皮台湾站点如何选品

在互联网时代&#xff0c;电商平台成为了越来越多人购物的首选。虾皮作为台湾地区最大的电商平台之一&#xff0c;为商家提供了良好的销售渠道。然而&#xff0c;在虾皮上选择适合的商品对于商家来说并不容易。本文将介绍如何通过虾皮选品工具-知虾来查看台湾地区各大类目的热销…

⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ MySQL存储过程 1. 介绍2. 使用3. 变量①系统变…

Polygon zkEVM协议治理、升级及其流程

1. 引言 随着Polygon社区开发者和内部团队的测试深入&#xff0c;当前版本的Polygon zkEVM不可避免地需更新和某些升级。 为激励开发者对Polygon zkEVM做battle-test&#xff0c;已启动了bug-bounty&#xff1a; Rewards by Threat Level 由于zk-Rollup生态系统还处于萌芽阶…

【libGDX】ApplicationAdapter生命周期

1 前言 libGDX 中&#xff0c;用户自定义的渲染窗口需要继承 ApplicationAdapter 类&#xff0c;ApplicationAdapter 实现了 ApplicationListener 接口&#xff0c;但实现的方法都是空方法&#xff0c;方法释义如下。 public interface ApplicationListener {// 应用首次创建时…

sql注入 [极客大挑战 2019]HardSQL1

打开题目 输入1或者1"&#xff0c;页面均回显NO,Wrong username password&#xff01;&#xff01;&#xff01; 那我们输入1 试试万能密码 1 or 11 # 输入1 and 12 # 输入1 union select 1,2,3 # 输入1 ununionion seselectlect 1,2,3 # 输入1 # 输入1# 页面依旧回…

在Ubuntu上用sane api实现通用扫描功能

最近由于工作需要&#xff0c;要写一套扫描相关的接口。 在这里记录一下&#xff0c;实现还有有点复杂的。 目录 依赖 主要功能 初始化 获取当前扫描仪列表 打开扫描仪 sane_open 设置扫描选项 sane_control_option 扫描 关闭设备 结束使用 参考资料 依赖 sudo a…

极域电子教室-教师机无法找到学生机

软件环境 极域电子教室2016 V6豪华版 场景还原 因为某软件安装闪退&#xff0c;只能使用自己的电脑进行控制演示&#xff0c;故拔掉原来教室机的网线。 恢复网络后&#xff0c;发现控屏软件无法找到台下的任何学生机。 PS: 拔掉网线前还是可以控制学生机 原因排查 1、网…

操作系统(六)| 文件系统下 文件使用 共享 保护

目录 4 空闲存储空间的管理 4.1 空闲区表 4.2 空闲块链 4.3 位图 5 文件的使用 6 文件共享 6.1 普通的文件共享方法 6.1.1 按路径名访问共享文件 6.1.2 链接法 6.1.3 基本文件目录BFD 6.2 基于I节点的文件共享方法&#xff08;Unix采用&#xff09; 6.2.1 硬链接 6…

transformer学习资料

一、NLP 自然语言处理 NLP 是机器学习在语言学领域的研究&#xff0c;专注于理解与人类语言相关的一切。NLP 的目标不仅是要理解每个单独的单词含义&#xff0c;而且也要理解这些单词与之相关联的上下文之间的意思。 常见的NLP 任务列表&#xff1a; 对整句的分类&#xff1…

课程32:.Net Core Web API部署IIS

这里写目录标题 🚀前言前言一、服务器环境配置1.1 安装 ASP.NET Core模块/托管捆绑包1.2 检查是否安装成功二、项目发布2.1 选择发布方式2.2 发布配置2.3 发布三、服务器部署3.1 IIS添加网站3.2 数据库链接配置3.3 让IIS支持.NET Web Api3.4 验证四、最后🚀前言 本文是《.…

Vue.js2+Cesium1.103.0 十四、绘制视锥,并可实时调整视锥姿态

Vue.js2Cesium1.103.0 十四、绘制视锥&#xff0c;并可实时调整视锥姿态 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"><divclass"control"style"position: absolute;right: 50px;top: 50px…

【周报2023-11-17】

周报2023-11-17 本周的主要工作下周的工作内容 本周的主要工作 本周的主要工作的话主要是小程序页面的搭建 那截止到目前也就是今天为止的话&#xff0c;小程序的主题页面已完成百分之80% 那剩下的话就是一些细节性的问题&#xff1a;例如说首页的三张图片是一个动态轮播动画 …

SpringBoot中文乱码问题解决方案

在Spring Boot中&#xff0c;确实没有像传统Web应用程序中需要使用web.xml配置文件。对于中文乱码问题&#xff0c;你可以采取以下几种方式来解决&#xff1a; 在application.properties文件中添加以下配置&#xff1a; spring.http.encoding.charsetUTF-8 spring.http.encod…

基于轻量级yolov5的瓷砖瑕疵检测系统

该专栏仅支持购买本专栏的同学学习使用,不支持以超级会员、VIP等形式使用,请谅解!【购买专栏后可选择其中一个完整源码项目】 本文是我新开设的专栏《完整源码项目实战》 的第十二篇全源码文章,包含数据集在内的所有资源,可以实现零基础上手入门学习。前面系列文章链接如下…

714. 买卖股票的最佳时机含手续费

给定一个整数数组 prices&#xff0c;其中 prices[i]表示第 i 天的股票价格 &#xff1b;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易&#xff0c;但是你每笔交易都需要付手续费。如果你已经购买了一个股票&#xff0c;在卖出它之前你就不能再继续购买股票了…

基于51单片机水位监测控制报警仿真设计( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题 &#x1f4a5;1. 主要功能&#xff1a;&#x1f4a5;2. 讲解视频&#xff1a;&#x1f4a5;3. 仿真&#x1f4a5;4. 程序代码&#x1f4a5;5. 设计报告&#x1f4a5;6. 设计资料内容清单&&下载链接&#x1f4a5;[资料下载链接&#xff1a;](https://doc…