使用@JsonProperty解决无法同时使用@JsonIgnore及@NotNull注解

来源:互联网 发布:ubuntu双系统安装 编辑:程序博客网 时间:2024/05/21 11:22

问题场景

用户注册时, 用户需要填写用户名和密码. 使用spring controller来接收请求数据并验证是否.
对于密码字段, 在实体类中我们增加了

  • @JsonIgnore
    使用此注解, 在转换成json时忽略密码此字段, 避免敏感信息外泄
  • @NotNull
    使用此注解, 要求用户在注册时必须填写密码.

问题原因

前端数据以json格式传递过来时, 由于使用了@JsonIgnore注解, 在做数据校验时获取到的密码为null, 因此无法通过校验.

问题解决

使用@JsonProperty代替@JsonIgnore:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

读写分离, 避免校验和隐藏的冲突问题

参考

https://stackoverflow.com/questions/12505141/only-using-jsonignore-during-serialization-but-not-deserialization

原创粉丝点击