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

项目1笔记

@Data 

@Data 是一个常用的 Lombok 注解,主要用于 Java 类中,可以自动生成以下内容:

  • Getter(所有字段)

  • Setter(所有非 final 字段)

  • toString() 方法

  • equals() 和 hashCode() 方法

  • 无参构造函数(如果类中没有其他构造函数)

示例:

import lombok.Data;

@Data
public class User {
    private String name;
    private int age;
}

等价于手动编写:

public class User {
    private String name;
    private int age;

    // Getter & Setter
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }

    // toString(), equals(), hashCode()
    @Override
    public String toString() { ... }
    @Override
    public boolean equals(Object o) { ... }
    @Override
    public int hashCode() { ... }

    // 无参构造
    public User() {}
}

定义业务状态码

    public static final Integer RESULT_CODE_SUCCESS = 200;
    public static final Integer ERROR = 500;
    public static final Integer RESULT_CODE_FAIL = -1;
    public static final Integer RESULT_CODE_UN_LOGIN = -2;
  • 作用:定义了 HTTP 响应状态码或业务逻辑结果的常量。

  • 优点:使用 static final 确保不可变性。

深入理解 Spring 的 MethodParameter 类

MethodParameter 是 Spring 框架中一个非常重要的类,它封装了方法参数(或返回类型)的元数据信息。这个类在 Spring MVC、AOP、数据绑定等多个模块中都有广泛应用。

核心功能

MethodParameter 主要提供以下功能:

  1. 获取参数类型信息 - 包括泛型类型信息

  2. 获取参数注解 - 包括参数上的注解

  3. 获取参数名称 - 如果编译时保留了参数名信息

  4. 获取所属方法或构造器 - 参数所属的方法或构造器信息

MethodParameter 是 Spring 框架中处理方法参数元数据的核心类,它提供了:

  • 完整的类型信息(包括泛型)

  • 注解访问能力

  • 参数名发现能力

  • 方法/构造器上下文信息

主要应用场景

1. Spring MVC 参数解析 

2. 响应体处理 (ResponseBodyAdvice)

3. 数据绑定和验证

常见问题解决

问题1:获取参数名返回null

解决方案

  1. 使用 Java 8+ 编译时添加 -parameters 选项

  2. 或者使用 ASM 库分析字节码:

parameter.initParameterNameDiscovery(new DefaultParameterNameDiscoverer());
String name = parameter.getParameterName();

问题2:泛型类型信息丢失

解决方案
使用 ResolvableType 代替直接获取 Class 对象:

// 不推荐 - 可能丢失泛型信息
Class<?> type = parameter.getParameterType();

// 推荐 - 保留完整泛型信息
ResolvableType type = ResolvableType.forMethodParameter(parameter);

@SneakyThrows

@SneakyThrows 是 Project Lombok 提供的一个实用注解,它允许你"偷偷地"抛出受检异常(checked exceptions),而无需在方法签名中声明它们。 

工作原理

@SneakyThrows 在编译时通过字节码操作实现以下功能:

  1. 移除受检异常要求:让编译器不检查你是否处理或声明了受检异常

  2. 异常转换:通过字节码技巧将受检异常作为非受检异常抛出

相关文章:

  • 如何在 Excel 中处理并拆分你提供的这种混合单位的库存数据。
  • 【1】k8s集群管理系列--包应用管理器之helm
  • Makefile:超简单快速入门(go示例)
  • 京东与喜茶关系破裂:切断所有合作 禁止进入办公场所
  • 安全是基石
  • http页面的加载过程
  • 富士相机照片 RAF 格式如何快速批量转为 JPG 格式教程
  • HarmonyOS:HMPermission权限请求框架
  • 宁德时代25年春招笔试演绎数字推理SHL测评题库
  • Python星球日记 - 第20天:数据分析入门
  • spark集群,Stand alone,Hadoop集群有关启动问题
  • biblatex 的 Biber 警告​​:tex文件运行无法生成参考文献和目录
  • Vue 项目中的package.json各部分的作用和用法的详细说明
  • Cline Memory Bank 结构化文档持久化 AI 上下文详解
  • 深入探索字符串处理:BF 算法与 KMP 算法
  • 红宝书第三十六讲:持续集成(CI)配置入门指南
  • OSPF接口的网络类型和不规则区域
  • Git使用与管理
  • 基于MCP协议调用的大模型agent开发04
  • 【GDB】调试程序的基本命令和用法(Qt程序为例)
  • 白酒包装设计网站/郴州网站建设
  • 开个网站建设公司多少钱/网络服务包括
  • 企业建站用什么主机/视频推广渠道有哪些
  • 信息产业部备案网站/企业邮箱域名
  • 商业设计平面图/广州百度搜索优化
  • Editplus做网站/百度搜索引擎关键词