苍穹外卖——day1

ops/2024/10/19 5:07:37/

前后端联调

前端先传给nginx再传给后端服务器

反向代理

我们可以看到前端和后端的访问地址不一样,那么怎么实现进行访问的呢?

我们是通过一种反向代理技术来实现的

利用nginx反向代理来实现前后端联调

下面是如何在我们的idea项目中使用nginx反向代理技术

如下图在我们的conf配置文件写入这样的代码就行了

,可以看懂代码,前端发来的请求路径含有api,然后就会自动转换为/admin,这样就和我们后端的地址是一样的了,从而实现了前后端联调

反向代理的优点

如下图

主要是负载均衡

下面是负载均衡的一些相关策略

登陆加密(MD5)

我们不想别人看到我们的sql表上面的密码,就能知道我们的密码,所以我们为了确保安全性,我们是通过MD5对密码进行加密

MD5加密的特点是,不可逆,也就是别人得到了我们的数据库里的密码,看到的一段是被MD5加密后的字符串,也不能被逆向解密出来,那样登陆的时候就不知道密码了

为了我们登陆的时候与数据库里的MD5字符串能比对成功

所以我们就要在登陆操作那里多加一个对传来的密码进行MD5加密操作,然后再和数据库进行比对,就能安全的登陆了

只需在service层那里进行这样一个操作就行

password=DigestUtils.md5DigestAsHex(password.getBytes());

记得把数据里的密码改为MD5后的密码

swagger

我们利用这个技术来实现接口文档的编写

反正就是我们编写的数据会帮我们自动生成一个接口文档

通过一个指定的地址来访问

下面是使用方式

第一步导入maven依赖

第二步在配置类里导入相关配置

第三步设置静态资源映射

代码如下

写在server(不是service)总包下的的config包里面

代码如下

@Beanpublic Docket docket() {ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.sky.controller")).paths(PathSelectors.any()).build();return docket;}/*** 设置静态资源映射* @param registry*/protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}

实现效果图

访问路径是上面的静态资源映射里面的

localhost:8080/doc.html

下面是Swagger的一些常见注解

这些注解就是起标注作用的,这代码里写了这些注解,括号里面写上的字符串,会在我们生成的接口文档那里体现出来

下面就是在代码上如何使用这些注解

很简单,直接看图就能理解


http://www.ppmy.cn/ops/110208.html

相关文章

android studio 模拟器 loadlibrary failed with 126:找不到指定的模块

loadlibrary failed with 126:找不到指定的模块 解决方法 解决方法:设备管理器-> 显示适配器-> 禁用 AMD Redeon 重启AndroidStudio

小杨的H字矩阵小杨的日字矩阵 c++

小杨的H字矩阵 题目描述 小杨想要构造一个NxN的H字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行N个字符,其中最左列、最右列都是 | (键盘右侧删除键下回车键上,shift\),而中间一行…

STM32单片机 定时器TIM输出比较 PWM波形

一. OC(Output Compare)输出比较 了解:IC(Input Capture)输入捕获、CC(Capture/Compare)输入捕获和输出比较单元OC功能:用来输出PWM波形,PWM波形又是用来驱动电机的必要…

uniapp 各个端接入腾讯滑动行为验证码示例

验证调起页面&#xff1a; <template><view class"app"><text>{{ obj.ret }}</text><button click"varify">验证</button></view> </template><script>export default{data(){return{obj: {}}},on…

项目总结 普通模式 相框模式

目录 一、相框选择对话框 1、数据结构定义 1)、模式枚举 2)、相框模式下,不显示连麦者时,确定具体显示模式 3)、初始化布局 4)、转换布局 5)、手动切换布局 6)、切换时机 6.1)、右键菜单 6.2)、相框模式选择 2、跳出相框模式对话框时机 0)、初始化 1)、…

【Java并发编程一】八千字详解多线程

目录 多线程基础 1.线程和进程 线程是什么&#xff1f; 为啥要有线程&#xff1f; 进程和线程的区别&#xff1f; Java 的线程 和 操作系统线程 的关系 使用jconsole观察线程 2.创建线程的多种方式 3.Thread类及其常见方法 Thread类的常见构造方法 Thread类的常见属性…

Linux系统性能调优的精髓:实战技巧解析

感谢浪浪云支持发布 浪浪云活动链接 &#xff1a;https://langlangy.cn/?i8afa52 文章目录 1. 影响Linux系统性能的常见因素2. 快速排除故障的方法CPU 性能分析内存性能分析磁盘和文件系统 I/O 性能分析网络性能分析 3. 排查系统负载过高的原因和瓶颈4. 找出占用负载前5的进程…

如何在Flask中实现用户认证

在Flask中实现用户认证通常涉及几个关键步骤&#xff1a;使用第三方库&#xff08;如Flask-Login或Flask-Security&#xff09;、用户数据管理、登录表单处理、会话管理以及保护需要认证的路由。以下是使用Flask-Login库实现用户认证的基本步骤&#xff1a; 1. 安装Flask-Logi…