简介
@JsonView可以自定义接口返回实体的某些属性。比如列表接口只需要返回几个重要的属性,而详情接口要返回所有的属性,这个时候就可以用到@JsonView注解。
自定义视图
/**
* 视图
*/
public class View {
/**
* 列表视图
*/
public interface Simple {
}
/**
* 详情视图,继承Simple视图,会返回Simple和Detail视图的属性
*/
public interface Detail extends Simple {
}
}
在实体属性上添加注解
public class User {
/**
* 用户名
*/
@JsonView(View.Simple.class)
private String username;
/**
* 密码
*/
private String password;
/**
* E-mail
*/
@JsonView(View.Simple.class)
private String email;
/**
* 手机
*/
@JsonView(View.Simple.class)
private String mobile;
/**
* 出生日期
*/
@JsonView(View.Detail.class)
private Date birth;
}
Controller层定义视图
/**
* 列表
*/
@GetMapping("/list")
@JsonView(View.Simple.class)
public ResponseEntity<?> list() {
......
}
/**
* 详情
*/
@GetMapping("/detail")
@JsonView(View.Detail.class)
public ResponseEntity<?> detail() {
......
}