Spring 引导忽略 ObjectMapper 模块
Spring Boot ignore ObjectMapper module
在应用程序上下文中我已经注册了一个 ObjectMapper 模块:
@Bean
public SimpleModule jsr310Module() {
final SimpleModule module = new SimpleModule();
module.addSerializer(new LocalDateSerializer());
module.addDeserializer(LocalDate.class, new LocalDateDeserializer());
return module;
}
我尝试调试并加载它(或者至少 public void setupModule(SetupContext context)
方法在启动时执行)
但是当我调用 rest API return 一个带有 LocalDate 的对象时,我的反序列化器被忽略了。
解决问题的一些提示?
根据 Spring Boot documentation,要配置 ObjectMapper,您可以自己定义 bean 并使用 @Bean
和 @Primary
对其进行注释。在那里你可以注册模块。或者您可以添加类型为 Jackson2ObjectMapperBuilder
的 bean,您可以在其中自定义 ObjectMapper。
要使其正常工作,@Configuration
class 应该扩展 WebMvcAutoConfiguration
在应用程序上下文中我已经注册了一个 ObjectMapper 模块:
@Bean
public SimpleModule jsr310Module() {
final SimpleModule module = new SimpleModule();
module.addSerializer(new LocalDateSerializer());
module.addDeserializer(LocalDate.class, new LocalDateDeserializer());
return module;
}
我尝试调试并加载它(或者至少 public void setupModule(SetupContext context)
方法在启动时执行)
但是当我调用 rest API return 一个带有 LocalDate 的对象时,我的反序列化器被忽略了。
解决问题的一些提示?
根据 Spring Boot documentation,要配置 ObjectMapper,您可以自己定义 bean 并使用 @Bean
和 @Primary
对其进行注释。在那里你可以注册模块。或者您可以添加类型为 Jackson2ObjectMapperBuilder
的 bean,您可以在其中自定义 ObjectMapper。
要使其正常工作,@Configuration
class 应该扩展 WebMvcAutoConfiguration