在Spring Boot中使用Java 8 Date / Time API

时间:2017-03-08 12:12:44

标签: spring-boot jsr310

我在一个全新的Spring Boot(1.5)应用程序上使用Java 8 Date / Time API(JSR-310)。在第一次公开发布之前,我们可以保留每个依赖项的提示,这就是为什么我要澄清完整Spring Boot堆栈上JSR-310处理的状态。

Boot Starter Web - Jackson序列化

只需添加jackson-datatype-jsr310依赖项。

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

启动启动数据 - Hibernate持久性

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

  • 使用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)开发状态,我还行,是否有任何优先方式?

提前致谢

1 个答案:

答案 0 :(得分:0)

关于你的第一个问题:jsr310依赖关系在optional中被声明为spring-boot-autoconfigure/pom.xml,这意味着它被默认排除,除非你在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。