【发布时间】:2023-03-15 00:25:01
【问题描述】:
在应用程序上下文中,我注册了一个 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) 是在启动时执行)
但是当我调用一个返回带有 LocalDate 对象的 rest API 时,我的反序列化器被忽略了。
解决问题的一些提示?
【问题讨论】:
-
您是如何注册 ObjectMapper 的?因为 SimpleModule 需要注入到 ObjectMapper 中。
-
我没有配置,模块应该是默认配置的,它做到了……我也可以用另一种方式,你有什么建议?
-
你可以看看 spring-boot 中的
JacksonAutoConfiguration类并尝试调试一下。我正在阅读它并试图弄清楚它是如何管理配置 ObjectMapper 的。看起来如果LocalDateDeserializer类(来自版本 1.2.2)在类路径中,它应该作为JodaDateTimeJacksonConfiguration的一部分自动加载。 (我仍然无法理解这种类型的配置:S) -
@rascio “当我调用返回带有 LocalDate 的对象的 rest API 时,我的反序列化器被忽略。”你的意思是 serializer 被忽略了吗?
-
是的,对不起...最后我解决了,是我错过了扩展
WebMvcAutoConfiguration类...
标签: jackson spring-boot jodatime