欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 项目1笔记

项目1笔记

2025/4/18 22:58:36 来源:https://blog.csdn.net/lcy57__/article/details/147126390  浏览:    关键词:项目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 & Setterpublic 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()@Overridepublic String toString() { ... }@Overridepublic boolean equals(Object o) { ... }@Overridepublic 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. 异常转换:通过字节码技巧将受检异常作为非受检异常抛出

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词