【发布时间】:2022-06-22 02:02:12
【问题描述】:
我正在使用没有 Spring Boot 的干净的 Spring MVC 框架 (v5.3.21)。 我正在使用 Gson 库,Spring 使用它来序列化视图模型,并返回请求方法。
public class Coffee {
String name = "n";
String brand = "b";
}
@RequestMapping(value={"/coffe"}, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public Coffee getCoffee() {
return new Coffee();
}
最近我在类路径中添加了 Jackson (v 2.13.3),我注意到序列化的工作方式大不相同。首先 - 在默认序列化的 Gson 非私有字段中,现在它们在客户端不可见。 我知道我可以添加注释
@JsonAutoDetect(fieldVisibility = Visibility.NON_PRIVATE)
到所有模型类,或将字段更改为公共(据我所知,杰克逊默认字段的可见性是公共的)。 但是我只想在配置中全局更改一次,而无需重写许多代码
我尝试了很多选项,但是没有 Spring Boot,它们都不起作用。 你知道用干净的 Spring 来改变这个默认设置吗?
【问题讨论】:
标签: spring spring-mvc jackson jackson-databind