Day02-Java项目学习

Day02

员工分页查询

Springboot

  • @RequestBody :主要用于将 HTTP 请求体中的内容(如 JSON、XML 等)绑定到方法的参数上。它的主要作用包括接收请求体内容和自动数据转换。

请求数据形式

  • 请求体:@RequestBody 注解用于将请求体中的内容绑定到方法参数上。由于 GET 请求没有请求体,所以 @RequestBody 只能用于 POST 请求。在后端的同一个接收方法里,@RequestBody 与 @RequestParam 可以同时使用,但 @RequestBody 最多只能有一个,而 @RequestParam 可以有多个。
  • 路径参数
  • 请求参数
    路径参数、请求参数、请求体
    multipart/from-data格式内容数据的接收

LocalDateTime格式问题

  • 通过@JsonFormat注解进行属性格式转换 @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
  • 使用SpringMVC的WebMvcConfigurationSupport类,重写extendMessageConverter方法,converters对象中消息转化器对象(定义了对象转换器)实现格式转化。
# 创建消息转换器
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
# 设置对象转换器
converter.setObjectMapper(new jacksonObjectMapper());
converters.add(converter);

异常捕获

项目出现异常抛出时,通过设置全局异常处理来接受异常,根据异常类型进行对应处理。
抛出异常返回前端
全局异常处理原理阅读

Mybatis

  • 使用pageHelper实现数据库员工数据的分页查询。
# statrPage()传入查询的页码和数据个数,通过ThreadLocal进行存储共享
pageHelper.startPage(pageIndex,pageSize)
# pageQuery()通过获取ThreadLocal中的页码数据个数信息,动态执行插入limit信息的Sql语句。
pageHelper.pageQuery()

调试时问题

正常运行,但是不可以进入debug模式
主要jdk 版本设置不一致问题导致。
我遇到的问题是,由于本机环境中有多个jdk版本,没有设置好,环境变量设置了jdk17版本,然后项目设置了1,8版本。
正常运行没问题,但是可能debug模式的一些运行时库dll是根据环境变量的jdk决定的,导致无法正常运行。

将项目jdk版本(sdk)设置为和环境变量的jdk版本一致后正常运行。

自定义公共字段的填充

自定义注解

注解的作用简单说,就是为添加了注解的类、方法、变量提供一些描述信息。
通过检查方法对应注解的描述信息,可以实现一定自定义处理操作。
为了实现AutoFill的mapper对象进行对象实体映射方法前,对updateTime、createTime等这类涉及公共字段信息的更新update、insert操作,进行字段的自动填充更新。
需要注解来对相应方法进行描述标记。在切面业务处理时,判断是否满足注解要求或者根据注解描述信息进行对应不同处理。
@AutoFill 注解的属性只有一个OperationType枚举类型。用来区分update、insert操作。
注解

自定义AOP

公共字段自动填充切面业务实现。
切入点:切入点方法需满足:1、是mapper包下java文件对象中的方法;2、有AutoFill注解
@Before注解实现在连接点(mapper方法)执行前,对方法参数进行字段填充:

  • 通过对方法进行封装的连接点JointPoint(函数名标签、包含的注解等信息)获取函数名标签、AutoFill注解对象。
  • 得到AutoFill对象的type(update,insert)
  • 根据type进行不同的填充操作

posted @ 2025-03-22 23:45  chamj  阅读(9)  评论(0)    收藏  举报