问题1:为什么不用@JsonProperty注解OrderForm

来源:6-10 买家订单-api_A

takooya

2018-03-24

因为要把OrderForm给OrderDTO,那为什么我们不用@JsonProperty使OrderForm的返回值与前台一直,让OrderForm真正的属性值与OrderDTO一致,这样我们就可以使用BeanUtils.copyProperties();方法,进一步简化代码!


请老师赐教,我是否有地方没有理解清楚呢??

写回答

2回答

廖师兄

2018-03-25

你说具体一些,觉得可以如何简化,在哪里增加代码,在哪删减代码

1
1
takooya
@Data public class OrderForm { /** 买家姓名 */ @JsonProperty("name") @NotEmpty(message = "姓名必填") private String buyerName; /** 买家电话 */ @JsonProperty("phone") @NotEmpty(message = "电话号必填") private String buyerPhone; /** 买家地址 */ @JsonProperty("address") @NotEmpty(message = "地址必填") private String buyerAddress; /** 买家微信openid */ @JsonProperty("openid") @NotEmpty(message = "微信openid必填") private String buyerOpenid; /** 购物车信息 */ @NotEmpty(message = "购物车不能为空") private String items; } 注意@JsonProperty()内属性名与前台接收和发送的属性名一致,OrderForm对象的属性名与OrderDTO对象属性名一致 这样OrderForm对象赋值给OrderDTO对象的时候,就可以使用BeanUtils.copyProperties();方法了 再加上之前写的用反射获得对象属性值为空的属性名的方法,就可以省掉自己写的OrderForm2OrderDTO的类和方法,使用BeanUtils.copyProperties();方法让OrderForm对象赋值给OrderDTO对象 这样做有什么缺点
2018-03-26
共1条回复

takooya

提问者

2018-03-26

@Data

public class OrderForm {
   /**  买家姓名 */
   @JsonProperty("name")
   @NotEmpty(message = "姓名必填")
   private String buyerName;
   /**  买家电话 */
   @JsonProperty("phone")
   @NotEmpty(message = "电话号必填")
   private String buyerPhone;
   /**  买家地址 */
   @JsonProperty("address")
   @NotEmpty(message = "地址必填")
   private String buyerAddress;
   /**  买家微信openid */
   @JsonProperty("openid")
   @NotEmpty(message = "微信openid必填")
   private String buyerOpenid;
   /**  购物车信息 */
   @NotEmpty(message = "购物车不能为空")
   private String items;
}

注意@JsonProperty()内属性名与前台接收和发送的属性名一致,OrderForm对象的属性名与OrderDTO对象属性名一致

这样OrderForm对象赋值给OrderDTO对象的时候,就可以使用BeanUtils.copyProperties();方法了

再加上之前写的用反射获得对象属性值为空的属性名的方法,就可以省掉自己写的OrderForm2OrderDTO的类和方法,使用BeanUtils.copyProperties();方法让OrderForm对象赋值给OrderDTO对象

这样做有什么缺点

0
0

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程