还在写VO?凉凉

884次阅读
没有评论

共计 718 个字符,预计需要花费 2 分钟才能阅读完成。

1.前言

前后端分离的时代,Json数据交互很常见,各种Rest接口的后端数据返回结构五花八门,这时候后端接口出现了2大现象:第一种,老夫数据一把梭,数据库结构啥样子,前端就能收到啥样的数据;第二种是每个接口返回都根据需要写个VO,结构分明。这二种方案各有利弊,本文不做探讨,接下来介绍第三种方案。

2.JsonView

Jackson大多数Java后端程序员都知道,用于处理我们数据的序列化和反序列化,Springboot中默认使用它自动帮我们处理了很多工作。但是它还提供了一个功能–那就是JsonView,可以只返回特定的字段,例如

@JsonView(value = {View.Base.class})
private Integer userId;
private String username;

这里我们定义了自己的视图接口Base,接下来只需要在我们的接口方法上添加

@JsonView(value = {View.Base.class})

这样最终序列化后的数据就只有userd,实现了和自定义VO一样的返回值。除此之外JsonView是承认继承/实现的,什么意思呢?假如我现在这么写

@JsonView(value = {View.Base.class})
private Integer userId;
@JsonView(value = {View.Child.class})
private String username;

Child是Base的实现,这时候我们使用

@JsonView(value = {View.Child.class})

修饰接口,你会发现username也返回了,学会了吗。

3.小结

本文简述了JsonView的使用方法,日常一个小技巧,你get到了没

正文完
 
mysteriousman
版权声明:本站原创文章,由 mysteriousman 2022-04-21发表,共计718字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)