苍穹外卖亮点再梳理 ||

一、项目整体亮点:

【注:基于每个亮点,均有整理的相关知识,可在博客中查看】

1.数据库的设计采用RBAC(基于角色访问控制)的权限设计。

RBAC将权限授予角色,然后将用户分配给角色,从而简化了权限管理。这种方法使得权限管理更加模块化和可管理,有利于系统的安全性和可维护性。

2.前端发送的动态请求由nginx转发到后端服务器。

提高了访问速度、进行负载均衡、保证了后端安全。

3.员工表中密码是明文存储,安全性低。使用MD5加密方式对明文加密。

4.为了更好的进行后端的接口测试,采用Swagger框架的Knife4j【接口文档访问路径:http://localhost:8080/doc.html】进行访问查看。

  • Yapi 是设计阶段使用的工具,管理和维护接口

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

5.对于公共字段的自动填充采用AOP切面编程,会让实现功能增强。

6.文件上传实现,有三种实现方法:①直接将图片保存到服务的硬盘②使用分布式文件系统进行存储③使用第三方的存储服务(OSS)这里采用阿里云的OSS

7.采用redis进行数据存储(①基于内存存储,读写性能高②适合存储热点数据③企业应用广泛)//店铺营业状态、缓存套餐和购物差车

redis是用C语言开发的一个高性能键值对数据库,官方提供的数据可以达到100000+的QPS(每秒内查询次数);它存储的value值比较丰富,也被成为结构化的NoSQL数据库。 NoSQL(not only SQL)不仅仅是SQL,泛指非关系型数据库,是关系型数据库的补充。

8.Spring Cache:(redis常用)

9.Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定时任务框架,定时自动执行某段Java代码只要是需要定时处理的场景都可以使用Spring Task【处理超时订单】

10.WebSocket: 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。【来单提醒、客户催单】

11.Apache ECharts: 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。【数据统计】

二、文件说明

各模块下每个包的作用:

数据库表说明:

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

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

相关文章

算法——倍增

. - 力扣(LeetCode) 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。 树节点的第 k 个祖先节点是从该节点到根节点路径…

JavaScript中创建对象的方式

在JavaScript中,有多种方式可以创建对象: 对象字面量: 这是创建对象最简单的方式,直接使用大括号 {} 包含键值对。var obj { key1: "value1", key2: "value2" };new 关键字: 使用 new 关键字和构…

指针 基础知识

本笔记为观看56 指针-指针的定义和使用_哔哩哔哩_bilibili后的学习笔记 指针的定义和使用 1、定义指针 int main () {//1、定义指针int a 10;//指针定义的语法: 数据类型 * 指针变量名;int * p;//让指针记录变量a的地址p &a; //& 为取址符cou…

电商技术揭秘十六:电商中的实时分析与决策支持系统

相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台…

数据结构_链表基本操作代码

链表是线性表的一种,是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 和顺序表差不多,用结构体定义一个节点,包括存储的数据和下一个节点的地址。 这里我们写几个接口&…

如何部署上线项目

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 多环境多环境分类前端多环境实战请求地址启动方式项目配置 后端多环境实战 项目部署原始部署前端…

【项目】棋海争锋

🎥 个人主页:Dikz12📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 项目介绍 WebSocket介绍 使用 项目创建 数据库设计 用户模块 登录接口 注册接口 获取用户信息接口 匹配模块 …

cartographer代码学习-概率栅格地图(ActiveSubmaps2D与Submaps2D)

概率栅格地图是二维激光SLAM的特点,能够将环境通过地图的形式表达出来。 ActiveSubmaps2D作为概率栅格地图中的重要成分,这个对象主要在LocalTrajectoryBuilder2D这里被使用 第一次调用: active_submaps_(options.submaps_options())传入一…

P1598 垂直柱状图

链接 ​​​​​​题目链接:P1598 垂直柱状图 题目 题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过 $100$ 个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出…

为什么要学习SpringBoot呢?

学习SpringBoot的原因众多,以下是其中的一些主要理由: 简化Spring应用开发:SpringBoot极大地简化了Spring应用的开发过程。它提供了许多默认的配置,使开发者能够更快速地构建和运行Spring应用,而无需花费大量时间在繁…

【Bing】开启代理后使用 Bing 搜索引擎总是: 没有与此相关的结果

【Bing】开启代理后使用 Bing 搜索引擎总是: 没有与此相关的结果 1 问题描述2 解决方法2.1 修改代理规则2.1.1 Clash Verge2.1.2 Clash Verge Rev2.1.3 V2RayN 1 问题描述 当我开了代理访问 Bing 时,经常会出现下面的页面: 2 解决方法 我所知的有三种方法: 手动关…

关于JVM-三色标记算法剖析

相关系列 深入理解JVM垃圾收集器-CSDN博客 深入理解JVM垃圾收集算法-CSDN博客 深入理解jvm执行引擎-CSDN博客 jvm优化原则-CSDN博客 jvm流程图-CSDN博客 三色标记产生的原因? 在并发标记的过程中,因为标记期间应用线程还在继续跑,对象间的引…

使用Matplotlib绘制打断图Broken Axis

使用Matplotlib绘制打断坐标轴Broken Axis 对于一批存在离群点的或者两极分化的数据,为了突出其值域差异,时常需要用到打断坐标轴效果。 使用Matplotlib绘制的效果如下: 对于同样的数据,使用brokenaxes库的绘制效果如下&#x…

Ubuntu20.04安装和编译运行lidar_align来联合标定lidar与imu的外参

硬件:树霉派4b 1、下载并安装lidar_align mkdir -p lidar_align/src cd lidar_align/src git clone https://github.com/ethz-asl/lidar_align.git 将 lidar_align/src/lidar_align/NLOPTConfig.cmake 文件移动到 lidar_align/src/ 下(与lidar_align同级) NLOP…

ShardingSphere-ShardingSphere读写分离和数据脱敏

文章目录 一、读写分离1.1 读写分离1.2 读写分离应用方案1.3 分表+读写分离1.4 分库分表+读写分离二、ShardingSphere-JDBC读写分离2.1 创建SpringBoot并添加依赖2.2 创建实体类2.3 创建mapper2.4 配置读写分离2.5 测试测试插入数据测试读测试事务一致性测试负载均衡一、读写分…

免费泛域名SSL证书申请

二级域名使用较多时,一个个申请证书有点麻烦。泛域名证书一次性解决。 申请SSL免费证书 生成SSL最佳配置 https://ssl-config.mozilla.org/ Install curl https://get.acme.sh | sh -s emailzengsmosong.cc alias acme.sh~/.acme.sh/acme.sh# 证书机构二选一&am…

C语言每日一题(66)三数之和

题目链接 力扣15.三数之和 题目描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答…

KMP算法的实现示例(伪代码)

KMP算法,即Knuth-Morris-Pratt算法,是一个线性时间复杂度的字符串匹配算法。它能在O(nm)的时间复杂度内完成一个长度为n的文本串S和一个长度为m的模式串T的匹配工作,其中n和m分别代表文本串和模式串的长度。相比于朴素字符串匹配算法&#xf…

vue3+echarts:echarts地图打点显示的样式

colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…

【H3C】开启web管理页面H3C S5120V2 Series

配置步骤 1.创建对应vlan并放行通过 2.添加vlanfi的ip地址 3.开启http和https的服务 4.创建用户,配置密码,配置服务类型,赋予权限 假设终端连接在交换机的g1/0/1口 假设终端的ip地址为(Ubuntu):192.168.200.11 /24 假设交换机vlan…