当前位置: 首页 > news >正文

SpringBoot学习Day2

DTO相关

当前端传来的数据与实体类差别很大时需要使用DTO来传输

DTO数据存入数据库时仍需用到实体类使用对象属性拷贝

LocalDateTime和Date

相较于Date,LocalDateTime优势如下

1.线程安全
2.并且对日期修改更加简单,功能更加强大
3.增加对时区的支持

全局异常处理

在类上使用@ControllerAdvice 注解,作为组件交给Spring管理
然后在方法上通过@ExceptionHandler 注解来具体指明一个异常的类型
然后处理异常

TheadLocal

Tomcat的每处理一个请求都是一个线程,TheadLocal为每一个线程都提供单独的一份存储空间
通过存储到ThreadLocal可以实现JWT令牌的获取

日期格式转换

可以在实体类中使用注解转换

在配置类中设置消息转换器(作用于全局)

配置类有两种实现方式

继承WebMvcConfigurer 接口(更加推荐,灵活)
继承WebMvcConfigurationSupport抽象类(适合大量配置的时候)

对于公共字段的处理

当新增或更新数据时都需要修改新增或改变更新时间或者更新人
此时考虑使用AOP切面对这些操作同一处理,减少冗余代码

@Conditional注解

当满足指定的条件时才创建到容器中,此外还有一些该注解的扩展
作用在类和方法上

文件名截取

String newFilename = originalFilename.substring(originalFilename.lastIndexOf("."));

useGeneratedKeys="true" keyProperty="id"

主键回填

用于类似插入查找再插入这样的操作,由于是一个事务,直接查主键是查不到的,需要凭借它返回主键值

<set>标签

自动去除update语句最后一个字段多余的逗号

多条插入动态sql

<insert id="insert">
        insert into dish_flavor (dish_id, name, values)
        values (#{dishId}, #{name}, #{values})
        <foreach collection="dishFlavorList" item="df">
            (#{df.dishId}, #{df.name}, #{df.values})
        </foreach>
    </insert>

相关文章:

  • SAP学习笔记 - 用Deepseek 整理SAP 09 - SAP中 BAPI 的核心概念,以及常用 BAPI 一览
  • (二十三)Dart 中的 Mixins 使用教程
  • C之(16)scan-build与clang-tidy使用
  • Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能
  • 小白电路设计-设计5-可调式单电源直流稳压电路设计
  • 力扣经典算法篇-4-删除有序数组中的重复项 II(中等)
  • Python-Django入手
  • git的clone报错unable to access 443
  • 批量将 PDF 文档中的图片提取到指定文件夹
  • 云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
  • AI Agent 实战:搭建个人在线旅游助手
  • HarmonyOS NEXT开发进阶(十四):HarmonyOS应用开发者基础认证试题集汇总及答案解析
  • 使用kubectl命令
  • GAN随手笔记
  • VC6.0 编译时报错:Error spawning ‘vcspawn.exe‘. The build could not be performed
  • 软件工程面试题(十五)
  • 如何在set和priorty_queue中自定义排序方式
  • 【软考-架构】10.3、处理流程设计-系统设计-人机界面设计
  • Mybatis中封装数据如何自定义一个数据类型处理器
  • MySQL数据库和表的操作之数据库操作