首页 > 其他分享 >sky-take-out chapter 1

sky-take-out chapter 1

时间:2024-08-09 18:17:41浏览次数:6  
标签:chapter 请求 前端 sky server nginx api take

开发环境搭建

一、前端环境搭建

二、后端环境搭建

2.1 项目结构

(1)sky-take-out: maven父工程,统一管理依赖版本,聚合其他掌控子模块
(2)sky-common: 子模块,存放公共类,例如:工具类、常量类、异常类等

  • constant 常量类
  • context 与项目上下文有关
  • enumeration 枚举类
  • exception 异常类
  • json 处理json转换
  • properties 属性,Springboot中的配置属性类
  • result 后端的一些返回结果
  • utils 工具类

(3)sky-pojo: 子模块,存放实体类、VO、DTO等

  • dto: 数据传输对象,通常用于程序中各层之间传递数据。例如:前端传来json数据,后端接收数据并封装为一个对象,这个对象就是dto。
  • entity:实体,通常和数据库中的表对应
  • vo:视图对象,为前端展示数据提供的对象,例如:列表数据、表单数据,后端把这些数据封装为java对象,返回给前端展示
  • pojo:普通java对象,只有属性和对应的getter和setter,其实上三者均属于pojo

(4)sky-server:子模块,后端服务,存放配置文件、Controller、Service、Mapper等

  • config:配置类
  • controller.admin
  • handler
  • interceptor:拦截器
  • mapper
  • service:服务类
  • SkyApplication:启动类

三、Git环境搭建

四、数据库环境搭建

序号 数据表名 中文名称
1 employee 员工表
2 category 分类表
3 dish 菜品表
4 dish_flavor 菜品口味表
5 setmeal 套餐表
6 setmeal_dish 套餐菜品关系表
7 user 用户表
8 address_book 地址表
9 shopping_cart 购物车表
10 orders 订单表
11 order_detail 订单明细表

五、前后端联调

(1)将应用程序跑起来,遇到了个版本兼容性问题,折腾了一下,更新通过Maven依赖更新新版 lombok 为 1.18.30 解决
(2)断点调试跟踪登录功能的执行过程
(3)前端发送的请求,是如何请求到后端服务的
前端请求地址:http://localhost/api/employee/login
后端请求地址:http://localhost:8080/admin/employee/login

Q:前后端请求地址不一样还能请求到,为啥呢?
A:nginx反向代理,就是将前端发送的动态请求有ngnix转发到后端服务器
nginx反向代理好处:

  • 提高访问速度,可在nginx这层做缓存
  • 进行负载均衡:所谓负载均衡就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器
  • 保证后端服务安全:后端服务一般部署在公司的局域网,不对外开放。所以前端先把请求发给nginx服务器,有nginx服务器走内网将请求发送给后端服务器处理请求

(4)ngnix反向代理的配置方式:
在ngnix.conf中配置

server{   #server 虚拟主机

          listen:80;  
          server_name localhost          
          location/api/{  # 处理前端请求中有api的

                   proxy_pass http://localhost:8080/admin/;#反向代理
          }


}

(5)nginx 负载均衡的配置方式
在ngnix.conf下

upstream webservers{
         #后端服务的ip地址和端口号
         server 192.168.100.128.8080
         server 192.168.100.129.8080
      

}

server{   #server 虚拟主机

          listen:80;  
          server_name localhost          
          location/api/{  # 处理前端请求中有api的

                   proxy_pass http://webservers/admin/;#反向代理
          }


}

(6)nginx 负载均衡策略

  • 轮询:默认方式,每台服务器接收到的请求是比较均衡的
  • weight:权重方式,默认为1,权重越高,被分配的客户请求就越多
  • in_hash:依据ip分配方式,这样每个访客可以固定访问一个后端服务
  • least_conn:依据最少连接方式,把请求优先分配给连接数少的后端服务
  • url_hash:依据url分配方式,这样相同的url会被分配到同一个后端服务
  • fair:依旧响应时间方式,响应时间短的服务会被优先分配

六、完善登录功能

问题: 员工表中的密码是明文存储,安全性太低
TODO:对密码进行加密

使用MD5加密方式对明文密码加密,该算法是单向的
步骤:

  1. 修改数据库中明文密码,改为MD5加密后的密文
  2. 修改java代码,前端提交的密码进行MD5加密后再跟数据库中密码比对
// 进行md5加密,然后再进行比对
        password=DigestUtils.md5DigestAsHex(password.getBytes());

导入接口文档

  • 前后端分离开发

  • 接口设计

  • 导入接口文档,这里我用的是apifox

  • Swagger的使用
    生成api文档: 通过knife4j生成接口文档
    可在设置的网页中进行查看文档和进行接口测试,提高测试效率

  • Swagger常用注解
    通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性
    1.@Api:用在类上,例如Controller,表示对类的说明
    2.@ApiModel:用在类上,例如entity、Dto、VO
    3.@ApiModelProperty: 用在属性上,描述属性信息
    4.@ApiOperation:用在方法上,例如Controller的方法,说明方法的用途、作用

标签:chapter,请求,前端,sky,server,nginx,api,take
From: https://www.cnblogs.com/jhhhred/p/18351260

相关文章

  • CF1142B Lynyrd Skynyrd
    我来讲一讲我的做法,时间复杂度\(O(n\logn)\)。适宜阅读2024/7/26upd:都快写成流水账了。首先,我们定义\(p\)数组中一个数字\(p_i\)的下一个数字为:对于\(1\lei\len-1\),\(p_i\)的下一位为\(p_{i+1}\)。对于\(i=n\),\(p_i\)的下一位为\(p_1\)。我们将这......
  • Chapter 28 继承
    欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能!文章目录前言一、基础语法二、复写前言在面向对象编程中,继承是一个重要的概念,它允许我们创建新的类(子类),以获得现有类(父类)的特性和行为。本文详细讲解了Python中的继承特性,介绍了如何通过继承来......
  • chapter7------栈与寻址
    栈段和代码段、数据段一样,栈也被定义为一个内存段,叫做栈段,由段寄存器ss指向定义栈段初始化段寄存器ss--->指向栈段的首地址初始化栈指针sp--->指向栈顶字节(以字为单位移动),初始化时指向栈段最后一个字节的下一字节,其实就等于分配给栈段的字节数栈操作push:压栈,sp的值......
  • chapter6------段间批量数据传送与循环
    跳过非指令的数据区一般来说,所有处理器指令都应当按顺序存放,在它们中间不允许夹杂非指令的普通数据,因为他们不能作为指令执行,所以要想办法让处理器执行不到这些非指令的内容,比如jmp指令等在数据声明中使用字面值chardb'L',0x07\'a',0x07编译阶段会将这些......
  • 李沐动手学深度学习V2-chapter_convolutional-modern
    李沐动手学深度学习V2文章内容说明本文主要是自己学习过程中的随手笔记,需要自取课程参考B站:https://space.bilibili.com/1567748478?spm_id_from=333.788.0.0课件等信息原视频简介中有卷积神经网络经典卷积神经网络LeNet深度卷积神经网络AlexNetAlexNet与LeNet对比:1.......
  • 卡巴斯基反病毒软件 - 免费版和试用版下载 |卡巴斯基 | 卡巴斯基 (kaspersky.com.cn)
    卡巴斯基反病毒软件-免费版和试用版下载|卡巴斯基|卡巴斯基(kaspersky.com.cn) 在线安装包官方下载链接:https://dm.s.kaspersky-labs.com/...8.5.438/startup.exe在线安装包&离线安装包蓝奏云下载链接:https://www.lanzouw.com/b035n5yi8d 密码:3rglKaspersky4Win21.1......
  • Skywalking环境搭建
    Skywalking环境搭建:一、Elasticsearch7安装1、下载镜像:dockerpullelasticsearch:7.5.12、创建es7基础环境dockerrun--nameelasticsearch-p9200:9200-p9300:9300-e"discovery.type=single-node"-eES_JAVA_OPTS="-Xms512m-Xmx512m"-delasticsearch:7.5.1......
  • chapter5------编写主引导扇区代码
    主引导扇区(MainBootSector,MBR)什么是主引导扇区:处理器加电或者复位之后(简单来说就是启动计算机),如果硬盘是首选的启动设备,那么ROM-BIOS(基本输入输出系统)将试图读取硬盘的0面0道1扇区(简单来说就是第一个扇区),这就是主引导扇区主引导扇区的特点:扇区数据仅有512字节......
  • 微信小程序默认的文字内容在左上角怎么办?带你0基础快速了解skyline渲染模式。
     ......
  • SkyTower靶机
    靶机地址:SkyTower:1~VulnHub一、信息收集步骤一:将攻击机kali和靶机均设为桥接模式,此时靶机的MAC地址为:步骤二:确定目标主机arp-scan-l得到目标主机IP为192.168.7.61步骤三:查看开放的端口nmap-sV-p-192.168.7.61步骤四:浏览器访问步骤五:目录扫描,无有用信息d......