苍穹外卖day01

news/2024/12/19 9:28:00/文章来源:https://www.cnblogs.com/97gogo/p/18614051

bug记录

  • 知识点记录

技术选型

用户层的技术,主要都是前端技术;

整体结构

后端环境搭建

缺少sky-take-out.iml文件,在IEDA的终端输入 mvn idea:module 可生成;

导入黑马提供的项目后,IDEA中jdk环境需改为18,Maven地址需改为自己的地址;

resources文件夹下的application.yml文件需更改数据库的用户名和密码;

IDEA中 ctrl+alt+点击 进入java文件,ctrl+点击 进入接口;

  • 简单的sql用注解方式配置;涉及复杂的、动态的标签使用,会将sql配置到mapper映射文件中,xml形式注入。

  • 前端请求的地址是http://localhost/api/employee/login,后端接口地址是http://localhost:8080/admin/employee/login,前端是如何请求到后端服务的?
    nginx反向代理,就是将前端发送的动态请求由nginx转发到后端服务器。(前端并不是直接请求到后端的tomcat服务器的,而是由nginx做了个转发)
    nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其他点是占有内存少,并发能力强。

  • 为什么不直接请求后端?
    ① 使用nginx反向代理可以提高访问速度,nginx可以做缓存。② 进行负载均衡(所谓负载均衡就是把大量的请求按照我们指定的方式均衡地分配给集群中的每一台服务器。如果前端直接请求后端,只能固定地访问某一台服务器。)③ 保证后端服务安全。(不会暴露后端地址。前端请求到nginx服务器,再由nginx服务器走内网转发给后端服务。)

  • 正向代理和反向代理的区别

    • 代理的对象不同:正向代理代理的是客户端,而反向代理代理的是服务器。
    • 目的不同:正向代理主要是为了保护客户端隐私和访问控制,而反向代理主要是为了保护服务器安全、负载均衡和提高性能。
    • 配置位置不同:正向代理在客户端配置,反向代理在服务器端配置。
    • 匿名性:正向代理通常用于匿名访问互联网,而反向代理不会隐藏服务器的真实身份。
      在实际应用中,正向代理和反向代理可以同时使用,以提供更全面的网络访问控制和安全性。
  • nginx负载均衡的配置方式

    图例128 129是两台后端服务器。
    nginx负载均衡策略默认是 轮询(轮着来);还有其它策略:weight(权重分配);ip_hash(根据ip分配,每一个访客可以固定访问一个后端服务);least_conn(把请求优先分配给连接数少的后端服务);url_hash(相同的url会被分配到同一个后端服务);fair(相应时间短的服务会被优先分配)。

完善登录功能

问题:员工表中的密码是明文存储,安全性太低。
改善:将密码加密后存储,使用MD5加密方式对明文密码加密。(MD5加密,只能由明文计算得到密文,无法从密文解密得到明文。)
步骤:①修改数据库中的明文密码 ②修改Java代码,前端提交的密码进行MD5加密后再跟数据库比对。

导入接口文档

postman、YAPI、apiFox等主要用于API的测试、设计和监控;
swagger可以做到生成接口文档,以及在线接口调试页面,只要用户按照其规范去定义接口及接口相关的信息。
Knife4j是为Java MVN框架集成Swaager生成api文档的增强解决方案。

YAPI/Postman等:是设计阶段使用的工具,管理和维护接口;
Swagger是在开发阶段使用的框架,帮助后端开发人员做后端的接口测试。

  • 使用方式:
    ① 导入knife4j的maven坐标
    ② 在配置类中加入knife4j相关配置
    ③ 需设置静态资源映射,否则接口文档页面无法访问

  • Swaager常用注解

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

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

相关文章

pdfjs 报错提示Failed to load module script

参考文章: pdfjs 报错提示Failed to load module script [JavaScript] MIME type 异常 在服务器好不容易配好nginx转发,jar包,静态资源等,访问网站一切ok,结果打开pdf时,无法预览:F12看了下,接口返回正常啊,说明接口没问题,接着看控制台,oh,问题在这: Failed to lo…

跨境电商双旦选品工具分享——看板软件篇

跨境电商在圣诞节和元旦节期间利用看板软件进行选品时,应充分利用其信息整合、数据分析、任务管理和团队协作等功能,以提升选品的效率和准确性。同时,也要关注市场趋势和消费者需求的变化,及时调整选品策略,以抓住节日销售的黄金时机。跨境电商在圣诞节和元旦节期间利用看…

自定义Snippets常用代码片段提高开发效率

自定义Snippets常用代码片段提高开发效率 日常搬砖过程中,有很多代码是重复的 对于这些代码,可以考虑放进工具类,或者安装snippets插件,或者干脆找以前的代码Ctrl+CV也是常有的事 对于常用又简单直接的代码,如果都放进工具类的某个方法中,未免有些过度封装 每一种框架和语…

加速企业流转:智能企业间文件传输方案,驱动业务高效前行!

企业间文件传输是指在不同企业之间,或企业内部的不同部门、团队之间,以及企业与外部合作伙伴之间,进行文件或数据的传递和共享的过程。这些文件可能包括各种类型的文档、图片、视频、代码等,用于支持企业的项目协作、数据备份、数据迁移、数据分析以及数据共享等需求。企业…

Landsat 使用QA波段去云

GEE中不同的landsat系列影像的波段名称、QA云位数有出入,生搬硬套网上现成的QA去云很容易出错。不同的影像需要设置不同的QA_PIXEL波段名称和比特位数,都在GEE的数据波段说明文档里。当前版本似乎都是3-云、4-云阴影。了解了原理,后面遇到陌生影像也能处理。 def rmCloud(im…

MySQL 时区与 serverTimezone

TL;DR手动为 MySQL 指定非偏移量的时区,以避免 TIMESTAMP 类型夏令时问题和时区转化性能瓶颈 TIMESTAMP 范围:1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07 连接 MySQL 数据库时,serverTimezone 参数用于指定数据库服务器的时区,需要设置为与 MySQL 服务端相同的时区My…

【详解】Ftrans安全数据摆渡系统,让数据传输更安全高效且可控!

基于提高安全性、满足合规性要求、保护核心资产、提高性能和可靠性以及风险管理等多方面的考虑,企业一般会选择网络隔离,有助于企业确保网络安全和数据保护,为企业的稳健发展提供有力保障。 一、网络隔离的必要性 1、提高安全性 1)限制潜在攻击者的横向移动:网络隔离可以限…

服务后台报临时上传路径/tmp/tongweb.xxxxxxxxxxxxxxxx.9999/work/Tongweb/localhost/ROOT无效

报错: 当服务后台报org.springframework.web.multipart.MultiPartException,failed to parsemultipart servlet request; nested exception is java.io.IOException,临时上传路径/tmp/tongweb.79923423523523135.9090/work/Tongweb/localhost/ROOT无效;是因为linux过段时间…

在 VS Code 中可以免费使用 GitHub Copilot了!

今天,有一个重大的好消息要分享给大家: 从现在开始,我们可以在 Visual Studio Code 中,免费使用强大的 GitHub Copilot 进行开发啦! 每个人都可以享受到 AI 加持下的丝滑开发体验! 那就让我们一起来看看如何能免费地用上 GitHub Copilot 吧! 1. 下载最新版本的 VS Code…

从底层源码深入分析Bean的实例化

生命周期的整体流程 Spring 容器可以管理 singleton 作用域 Bean 的生命周期,在此作用域下,Spring 能够精确地知道该 Bean 何时被创建,何时初始化完成,以及何时被销毁。 而对于 prototype 作用域的 Bean,Spring 只负责创建,当容器创建了 Bean 的实例后,Bean 的实例就交给…

abc 蓝题方法整理

abc 蓝题方法整理 trick 基本算法 搜索 最优性剪枝/保证枚举合法保证复杂度 : 42, 166 约束与两边有关系考虑双向搜索 : 54 数据范围较小考虑爆搜: 81, 162 从可能性较少的位置向较多的位置搜 : 162 记忆化搜索优化 : 162 meet-in-the-middle处理总状态不多的搜索 : 162, 193 边…