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

Spring-Boot 1.5.10.RELEASE默认是否仍不支持Java8 LocalDate的JSR310转换器?

关于Spring Boot 1.5.x中@EntityScan与JSR310转换器的疑问解答

你观察得非常准确,这里的核心原因是显式添加@EntityScan会覆盖Spring Boot的默认实体扫描逻辑,包括自动注册JSR310转换器的行为。我来把这个逻辑拆解清楚:

  • Spring Boot 1.4及以上版本确实默认支持JSR310/Java 8的LocalDate等日期类型:只要你的项目依赖了spring-data-jpa,框架会自动注册Jsr310JpaConverters,无需手动配置就能让JPA正确处理这些新日期类型。这个默认行为的前提是你没有自定义实体扫描规则。

  • 当你添加@EntityScan注解时,相当于告诉Spring Boot:"我要自己指定扫描哪些包/类作为实体",这时框架会关闭所有默认的实体扫描配置——包括自动引入Jsr310JpaConverters的逻辑。所以如果你的实体不在主应用类的包路径下,必须加@EntityScan的话,就需要手动把Jsr310JpaConverters.class也加入扫描范围,否则JPA无法识别LocalDate这类类型,会抛出转换错误。

  • 如果你不需要扫描主应用类包外的实体,那完全可以去掉@EntityScan注解,Spring Boot会自动扫描主应用类所在包及其子包的实体,同时自动启用JSR310转换器,这样就不用额外配置了。

总结一下:你的操作是正确的,并不是框架的问题,只是自定义扫描覆盖了默认行为导致需要手动包含转换器类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:21:25