苍穹外卖项目完结

项目导航:gitee链接

历时两周多的苍穹外卖项目终于完结,其实如果没有其他任务的影响,可以更快的,虽然项目简单,但是收获还是很多的。接下来微服务,然后补习一下前端知识,最后毕设开工。

苍穹外卖项目随手记

  • nginx转发与负载均衡
  • 密码MD5加密DigestUitls
  • knife4j依赖Swagger生成接口文档
  • JWT令牌(密匙,时效,用户信息)
  • apifox插件(接口文档)
  • Dao层三分,DTO,VO,POJO
  • 默认值,一般分到constant包中定义常量类,解决硬编码问题
  • BeanUtils类属性拷贝
  • 配置全局捕获异常类,常用来捕获异常返回Result中的错误方法给前端
  • 用ThreadLocal为每个线程提供独立存储空间的原理,Tomcat服务器会为每一次请求提供一个单独的线程,因此可以用来设置当前请求下用户的ID。
  • 重写WebMvcConfigurationSupport中的extendMessageConverters方法可以扩展消息转换器,比如将Java的日期格式序列化为JSON格式数据。实现addInterceptors方法注册自定义拦截器。
  • 切面编程:创建自定义注解,创建切面类(定义切入点方法,定义切面方法,标明通知类型,利用反射机制编写切面方法的逻辑代码)
  • 事务管理:@Transactional注解可以标识事务管理,rollbackFor属性表示何种情况下回滚,propagation属性表示事务传播行为,也就是对于嵌套的语句,外部的语句与其内部调用的语句是否公用一个事务。
  • useGeneratedKeys="true" keyProperty="id ,在 MyBatis 或其类似的持久层框架中,useGeneratedKeys="true" 和 keyProperty="id" 这两个属性经常一起使用,特别是在插入数据(INSERT)时。这两个属性的目的是处理和返回数据库自动生成的主键。
  • 插入删除更新表中的元组时,要考虑清楚该元组关联了哪些表,这些表决定了该表能不能删,表内的元组内的元素变化时哪些表的元组内的元素要一同变化。
  • 在使用<foreach>标签生成动态SQL时,需要注意每一个遍历的集合对象,对数据库中的元素赋值时采用对象.属性的方式。
  • 如果可以尽量保证Controller层方法参数用DTO类型;Service层接口参数类型用DTO类型,返回类型用VO类型;DAO层对数据库操作的接口的参数用Entity类型,返回类型用VO。
  • 一个接口对应一个Controllrt类和一个Service接口,一张表对应一个Mapper接口。
  • 前端如果是用JSON格式封装参数请求后端,而后端必须需要用实体类作为参数接受,哪怕请求体里面的JSON数据只有一个参数。
  • Spring Task任务调度工具,可以按照约定时间自动执行某个代码逻辑,定时任务框架
  • WebScoket协议,一种长连接协议,用于实时通信。
  • Apache POI 用于处理办公软件的数据,如最常用的excel表格,对一些银行业务,商家应收等业务的信息,通过Java代码进行操作。

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

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

相关文章

【回溯 网格 状态压缩】52. N 皇后 II

本文涉及知识点 回溯 网格 状态压缩 LeetCode52. N 皇后 II n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回 n 皇后问题 不同的解决方案的数量。 示例 1&#xff1a; 输入&#x…

桌面怎么分类便签 桌面分类便签设置方法

桌面便签&#xff0c;一直是我工作和学习的好帮手。每当灵感闪现或是有待办事项&#xff0c;我都会随手记录在便签上&#xff0c;它们就像我桌面上的小助手&#xff0c;时刻提醒我不要遗漏任何重要事务。 但便签一多&#xff0c;管理就成了问题。一张张五颜六色的便签贴满了我…

【Linux笔记】 基础指令(二)

风住尘香花已尽 日晚倦梳头 重命名、剪切指令 -- mv 简介&#xff1a; mv 命令是 move 的缩写&#xff0c;可以用来移动文件或者将文件改名&#xff0c;是 Linux 系统下常用的命令&#xff0c;经常用来备份文件或者目录 语法&#xff1a; mv [选项] 源文件或目录 目标文件或目录…

GitHub操作

远程库-GitHub GitHub网址 GitHub是全球最大的远程库 1. 创建远程库 2. 远程仓库操作 2.1 创建远程仓库别名 git remote -v 查看当前所有远程库地址别名 git remote add 别名 远程地址 设置远程库地址别名 案例操作 起一个别名会出现两个别名&#xff0c;是因为既可以拉取…

vscode默认终端设置为cmd的方法

vscode默认终端是powershell,执行某些命令时会提示权限等问题&#xff0c;如果更习惯使用cmd终端的话&#xff0c;可以将默认终端配置为cmd。 方法一&#xff1a; 方法二&#xff1a; 如果你想更改默认的终端&#xff0c;可以通过以下步骤操作&#xff1a; 打开 VSCode。使用…

深入理解Linux下的网络监控工具:iftop

目录标题 1. 什么是iftop?2. 安装iftop在Debian/Ubuntu上安装在CentOS/RHEL上安装在其他Linux发行版上 3. 使用iftop监控网络流量命令行选项界面说明交互命令 4. 相关参数及说明 在维护和监控Linux服务器时&#xff0c;了解网络流量的细节非常重要。网络监控可以帮助我们诊断延…

el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

el-select下拉框 添加 el-checkbox 多选框&#xff0c;支持全选、取消全选 前言一、实现思路二、实现代码1.模板代码2. css 样式3.js 代码 DEMO 演示总结 前言 实现效果预览 提示&#xff1a;本内容基于element-ui 组件实现&#xff0c;如果使用其他组件库、可参考下面实现方…

5/11后面部分:+顺序排序+元素交换+计算每门课程的各种成绩+存放规律的数据 注意:一味的复制肯定要出问题,第2个的最后一部分有修改,注意观察

目录 第一个已经输出过一次&#xff1a; 第二个: 编程实现&#xff1a;程序功能是用起泡法对数组中n个元素按从大到小的顺序进行排序。 ​编辑的确出现了一些问题哦&#xff1a; ​编辑目前是可以运行&#xff0c;但AI不给我们通过&#xff1a; 最后还是我的代码获胜&#x…

【Android】Kotlin学习之Lambda表达式

java和kotlin对比 Lambda语法 Lambda隐形参数 it 也可以不使用指定的名称it, 可以 自定义 Lambda 使用下划线

俄罗斯方块的代码实现

文章目录 首先是头文件的引入部分接下来是一些预处理指令接下来定义了两个结构体&#xff1a;接下来是全局变量g_hConsoleOutput&#xff0c;用于存储控制台输出句柄。之后是一系列函数的声明最后是main函数源码 首先是头文件的引入部分 包括stdio.h、string.h、stdlib.h、tim…

09 - 函数调用

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 函数定义及调用1.1 自定义函数的语法1.2 make 解释器中的预定义函数1.2.1 预定义函数的调用1.2.2 问题1.2.3 本质分析 2. 示例代码 1. 函数定义及调用 makefile 中支持函数的概念 make 解释器提供了一系列的函数供 makefile 调…

git 推送github 选https遇到登录 openSSH问题

使用https需要使用github令牌token作为密码&#xff0c; 使用SSH不需要登录。 还有一个问题&#xff1a; 创建github仓库后没有quick setup页面解决办法 千万不要点击任何多的操作&#xff01;&#xff01;&#xff01;输入仓库名&#xff0c;直接create&#xff01;&#x…