苍穹外卖项目完结

项目导航: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代码进行操作。
相关推荐
路在脚下@11 分钟前
spring boot的配置文件属性注入到类的静态属性
java·spring boot·sql
啦啦右一12 分钟前
Spring Boot | (一)Spring开发环境构建
spring boot·后端·spring
森屿Serien14 分钟前
Spring Boot常用注解
java·spring boot·后端
苹果醋31 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
Hello.Reader2 小时前
深入解析 Apache APISIX
java·apache
了一li2 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
菠萝蚊鸭2 小时前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
码农君莫笑2 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
旭东怪2 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程