将JavaTimeModule注册到springboot中默认的objectmapper

Cha*_* Ju 6 java java-time objectmapper jackson2

我定义一个JavaTimeModule

@Bean public Module java8TimeModule() {
    JavaTimeModule javaTimeModule = new JavaTimeModule();
    return javaTimeModule; 
}
Run Code Online (Sandbox Code Playgroud)

但是,它不会向默认对象映射器注册自身。我正在使用 jackson-databind-2.8.9.jar。

Eclipse IDE的在线帮助JavaTimeModule()说:

请注意,从 2.6 开始,该模块不支持自动注册。

不确定 jackson-databind-2.8.9 是否仍然是同样的情况,导致JavaTimeModule未注册默认对象映射器。

我不想创建新的对象映射器。与过去一样,当我尝试此操作时,我创建的对象映射器遇到了另一个问题。

Springboot 文档说:

定义 Jackson2ObjectMapperBuilder 类型的 @Bean 将允许您自定义默认的 ObjectMapper 和 XmlMapper。

但我找不到代码示例,也不知道该怎么做。

如果我定义了一个@Beanof 类型Jackson2ObjectMapperBuilder,它会取代默认的类型吗?其后果是什么?以及如何从中获取默认的对象映射器Jackson2ObjectMapperBuilder

Cha*_* Ju 5

我在 Jackson2ObjectMapperBuilder 中找到了有关如何自定义默认 objectMapper 的现有链接,启用字段可见性 ANY

我也发现了我的程序的问题。JavaTimeModule 自动通过 jackson-databind-2.8.9 注册到默认的 objectMapper。我的程序中的问题是由使用新创建的 objectMapper 引起的。我应该使用@Autowired objectMapper 的默认objectMapper。