You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring添加CorsMapping后Jackson序列化LocalDateTime为数组的原因

问题根因

序列化异常由自定义配置类上的@EnableWebFlux注解触发,CORS配置逻辑本身没有问题:

  • Spring Boot WebFlux 自动配置默认会为Jackson注册JavaTimeModule时间处理模块,同时关闭WRITE_DATES_AS_TIMESTAMPS序列化配置,因此LocalDateTime类型默认序列化为ISO-8601标准格式字符串,对应最初的正常响应结果。
  • 在配置类上添加@EnableWebFlux注解后,Spring Boot会直接禁用WebFlux相关的全部自动配置,交由开发者手动接管WebFlux全量配置。自动配置中预置的Jackson时间序列化定制规则会同步失效,Jackson回退到原生默认序列化逻辑。
  • Jackson默认处理LocalDateTime类型时,会将其内部存储的年、月、日、时、分、秒、纳秒属性逐一拆解序列化,最终输出观测到的数值数组结构。
修复方案

移除WebConfig类上的@EnableWebFlux注解即可恢复正常。

自定义WebFlux配置(包括CORS映射、拦截器、参数格式化器等)时,仅需编写实现WebFluxConfigurer接口的@Configuration类即可,无需额外添加@EnableWebFlux注解。该注解仅在需要完全手动管控WebFlux所有基础组件、完全弃用Spring Boot WebFlux自动装配能力的场景下使用。

内容的提问来源于stack exchange,提问作者DGrinbergs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:12:19