【问题标题】:Working with Java 8 Date/Time API in Spring Boot在 Spring Boot 中使用 Java 8 日期/时间 API
【发布时间】:2017-07-29 00:07:45
【问题描述】:

我正在一个全新的 Spring Boot (1.5) 应用程序上使用 Java 8 日期/时间 API (JSR-310)。在第一次公开发布之前,我们可以随时了解每个依赖项,这就是为什么我想澄清 JSR-310 在完整 Spring Boot 堆栈上的处理状态。

Boot Starter Web - Jackson 序列化

只需添加 jackson-datatype-jsr310 依赖即可。

但这真的有必要吗?如果是这样,为什么它不包含在标准捆绑包中?

引导启动数据 - 休眠持久性

这就是棘手的地方。我对此有点挣扎,可能是因为我使用的是 PostgreSQL。 似乎 Java 8 兼容性已被 JDBC 用于 4.2 版,这意味着:

  • 使用 JDBC 4.2 驱动程序(对于 PostgreSQL,当前为 9.4.1212)
  • 覆盖 Hibernate 版本 >= 5.2.6,从而支持 JDBC 4.2

相关:PSQLException - spring boot 1.4.1 - spring data jpa - offsetdatetime/localdatetime identified as Bytestream

一切都按预期工作,但就目前(Spring Boot 1.5.2)的开发状态而言,我做得还好吗,有什么首选的方法吗?

提前致谢

【问题讨论】:

    标签: spring-boot jsr310


    【解决方案1】:

    关于您的第一个问题:jsr310 依赖项在spring-boot-autoconfigure/pom.xml 中声明为optional,这意味着除非您在 projet pom.xml 中声明依赖项,否则默认情况下将其排除在外。

    我可以给你一个实际的例子来证明它是可选的。几周前,我将一个 Spring Boot 项目从 Java 7 迁移到 Java 8。该项目使用 Joda-Time,依赖于 jackson-datatype-joda API 来管理时间数据。我的项目开箱即用,无需事先迁移到新的 java.time (jsr310) API。之后我切换到 java.time API 并用 jackson-datatype-jsr310 替换了 jackson-datatype-joda 依赖项。但与此同时,我能够处理一些紧迫的问题,而不是非必要的(尽管建议)更改 API。

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 2014-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 2022-12-07
      • 2016-09-07
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多