object 对象注解@Data的坑

本文探讨了前端传值过程中遇到的大小写不匹配及getset方法名称不一致的问题,并介绍了如何通过@JsonProperty注解来指定参数名称,确保前后端数据交互的一致性和准确性。

因为看不到get set方法,所以前端传值与接收的时候会按照get set方法名字进行接收与输出所以,参数名偶尔会有大小写问题,或者省略is等问题看不到不能确定,所以可以使用
@JsonProperty(value=“参数名,前端可以通过这里写的参数名进行传参”) 注解,这里怎么写接收就是怎么接收的,

由于参考引用未提及@ParameterObject注解和@Parameter注解相关内容,结合常见的使用场景来分析二者区别: ### 作用对象 - **@ParameterObject注解**:通常用于标注一个包含多个参数的对象。将这个对象作为一个整体来进行参数的管理和描述,适用于参数较多且具备一定关联性的情况,能够简化对多个参数的处理。例如在一个查询接口中,查询条件可能包含多个字段,这时可以将这些字段封装到一个查询对象中,并使用@ParameterObject注解来标注这个查询对象。 ```java import java.util.List; class QueryObject { private String keyword; private List<Integer> categoryIds; // getter和setter方法 public String getKeyword() { return keyword; } public void setKeyword(String keyword) { this.keyword = keyword; } public List<Integer> getCategoryIds() { return categoryIds; } public void setCategoryIds(List<Integer> categoryIds) { this.categoryIds = categoryIds; } } class ExampleController { public void queryData(@ParameterObject QueryObject query) { // 处理查询逻辑 } } ``` - **@Parameter注解**:一般用于单独描述一个参数。可以对请求参数(如路径参数、查询参数)、响应参数等进行详细的注解说明,为每个参数添加额外的信息,如描述、是否必需等。 ```java import io.swagger.v3.oas.annotations.Parameter; class ExampleController { public void getProduct(@Parameter(description = "产品ID", required = true) Long productId) { // 根据产品ID获取产品信息 } } ``` ### 描述粒度 - **@ParameterObject注解**:提供的是对整个参数对象的宏观描述,侧重于说明这个对象的整体用途和作用。例如在一个订单处理系统中,可能会有一个包含订单详情、收货地址等信息的订单对象,使用@ParameterObject注解可以说明这个订单对象是用于提交完整的订单信息。 - **@Parameter注解**:提供的是对单个参数的微观描述,会详细说明这个参数的具体含义、取值范围、格式要求等。例如在一个登录接口中,使用@Parameter注解可以对用户名和密码这两个参数分别进行详细描述,如用户名的长度限制、密码的加密方式等。 ### 使用频率和场景 - **@ParameterObject注解**:在处理复杂业务逻辑的接口时,当需要传递一组具有内在联系的参数时使用。这样可以提高代码的可读性和可维护性,避免在方法参数列表中出现过多的参数。例如在一个电商系统的商品搜索接口中,可能需要传递多个搜索条件,像商品名称、价格范围、分类等,将这些条件封装到一个搜索对象中并使用@ParameterObject注解会更加合适。 - **@Parameter注解**:在处理简单接口或者需要对个别参数进行特殊说明的场景中使用。例如在一个获取用户详情的接口中,只需要传递一个用户ID作为参数,使用@Parameter注解可以清晰地说明这个用户ID参数的作用和要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值