在 spring boot 中使用默认的 objectmapper 注册 JavaTimeModule
Register JavaTimeModule with the default objectmapper in springboot
我定义了一个JavaTimeModule
:
@Bean public Module java8TimeModule() {
JavaTimeModule javaTimeModule = new JavaTimeModule();
return javaTimeModule;
}
但是,它不会在默认的对象映射器中注册自己。我正在使用 jackson-databind-2.8.9.jar.
EclipseIDE中JavaTimeModule()
的联机帮助说:
Note that as of 2.6, this module does NOT support auto-registration.
不确定 jackson-databind-2.8.9 是否仍然是相同的情况导致 JavaTimeModule
没有注册默认的 objectmapper。
我不想创建新的对象映射器。和过去一样,当我尝试这个时,我创建的 objectmapper 遇到了另一个问题。
Springboot 文档说:
Defining a @Bean of type Jackson2ObjectMapperBuilder will allow you to customize both default ObjectMapper and XmlMapper.
但我找不到代码示例,也不知道该怎么做。
如果我定义 Jackson2ObjectMapperBuilder
类型的 @Bean
,它会替换默认的吗?它的后果是什么?以及如何从 Jackson2ObjectMapperBuilder
获取默认对象映射器?
我在 找到了关于如何自定义默认 objectMapper 的现有 link。
我也发现了我程序中的问题。 JavaTimeModule 使用 jackson-databind-2.8.9 自动注册到默认的 objectMapper。我程序中的问题是由使用新创建的 objectMapper 引起的。我应该使用@Autowired objectMapper 的默认objectMapper。
我定义了一个JavaTimeModule
:
@Bean public Module java8TimeModule() {
JavaTimeModule javaTimeModule = new JavaTimeModule();
return javaTimeModule;
}
但是,它不会在默认的对象映射器中注册自己。我正在使用 jackson-databind-2.8.9.jar.
EclipseIDE中JavaTimeModule()
的联机帮助说:
Note that as of 2.6, this module does NOT support auto-registration.
不确定 jackson-databind-2.8.9 是否仍然是相同的情况导致 JavaTimeModule
没有注册默认的 objectmapper。
我不想创建新的对象映射器。和过去一样,当我尝试这个时,我创建的 objectmapper 遇到了另一个问题。
Springboot 文档说:
Defining a @Bean of type Jackson2ObjectMapperBuilder will allow you to customize both default ObjectMapper and XmlMapper.
但我找不到代码示例,也不知道该怎么做。
如果我定义 Jackson2ObjectMapperBuilder
类型的 @Bean
,它会替换默认的吗?它的后果是什么?以及如何从 Jackson2ObjectMapperBuilder
获取默认对象映射器?
我在
我也发现了我程序中的问题。 JavaTimeModule 使用 jackson-databind-2.8.9 自动注册到默认的 objectMapper。我程序中的问题是由使用新创建的 objectMapper 引起的。我应该使用@Autowired objectMapper 的默认objectMapper。