苍穹外卖项目完结

项目导航: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代码进行操作。
相关推荐
谷哥的小弟1 分钟前
Spring Framework源码解析——ApplicationContextInitializer
java·spring·源码
布谷歌4 分钟前
在java中实现c#的int.TryParse方法
java·开发语言·python·c#
+VX:Fegn08957 分钟前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
while(1){yan}15 分钟前
网络基础知识
java·网络·青少年编程·面试·电脑常识
Ulana19 分钟前
计算机基础10大高频考题解析
java·人工智能·算法
黄俊懿26 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
wheelmouse778830 分钟前
一个优雅、通用、零侵入的 CSV 导出工具类(Java 实战)
java·开发语言
cike_y1 小时前
JavaWeb-Request应用与Cookie&[特殊字符]️Session
java·开发语言·安全·java安全
杨云龙UP1 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql
hashiqimiya1 小时前
两个步骤,打包war,tomcat使用war包
java·服务器·前端