在controller中返回json数据的时候,有时不希望某些属性返回给前端,比如说密码或者一些无用的数据,一般我们会通过给实体属性添加@JsonIgnore注解来避免返回。
但是当我们接收前端参数的时候,@JsonIgnore会一并忽略掉setter方法,也就是说前端的传的值将无法注入到实体类属性中。
百度到的方法有说在setter上添加@JsonProperty, 在getter上添加@JsonProperty,这样倒是也能解决问题,不过稍微有点麻烦,尤其是对用了lombok的小伙伴来说。
解决方案取决于你的jackson版本:
1.9版本之后:
给实体类属性添加这个注解: @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
1.9版本之前:只给getter方法添加@JsonIgore注解, setter和属性无需添加(这个我没有试过,不晓得管不管用)