我有一个使用Jackson和@RequestBody注释的Spring MVC应用程序。
我在POJO中有一个我不希望Jackson映射的字段,所以我让lombok将setter访问级别设置为NONE。
@NotNull
@Setter(AccessLevel.NONE)
private boolean enabled = false;
我试图通过配置为:
来强制Spring的ObjectMapper bean只使用setter@Bean
@Primary
public ObjectMapper getObjectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.NONE);
return mapper;
}
我认为没有制定者且没有该领域的可见性杰克逊不会映射“已启用”字段...但是如果我发送一个启用了设置为true的正文,则会映射它,
有人可以建议我还需要做什么吗?
由于
答案 0 :(得分:3)
只需使用@JsonProperty
注释该字段,并将访问权限设置为只读。
@JsonProperty(access = Access.READ_ONLY)
private boolean enabled;
PS。由于您使用的是基本类型,因此无需使用@NotNull
进行批注或初始化为false。