springboot 实体类使用@JsonIgnore属性后无法接收前端参数的完美解决方法

在controller中返回json数据的时候,有时不希望某些属性返回给前端,比如说密码或者一些无用的数据,一般我们会通过给实体属性添加@JsonIgnore注解来避免返回。
User实体的passwd属性在序列化的时候会被忽略
但是当我们接收前端参数的时候,@JsonIgnore会一并忽略掉setter方法,也就是说前端的传的值将无法注入到实体类属性中。

百度到的方法有说在setter上添加@JsonProperty, 在getter上添加@JsonProperty,这样倒是也能解决问题,不过稍微有点麻烦,尤其是对用了lombok的小伙伴来说。

解决方案取决于你的jackson版本:
1.9版本之后:
给实体类属性添加这个注解: @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
在这里插入图片描述

1.9版本之前:只给getter方法添加@JsonIgore注解, setter和属性无需添加(这个我没有试过,不晓得管不管用)

你可能感兴趣的:(程序员,java,springboot)