领先一步
VMware 提供培训和认证,助你加速前进。
了解更多随着 Java 8 的 GA 版本终于在本周到来,让我们都来欢庆吧——然后醒来想想如何在日常工作环境中引入它...
这对于原型开发来说足够简单:下载一个 JDK 8,安装 IntelliJ IDEA 或 Eclipse 最近完成的 Java 8 支持,然后就可以开始了。挑战在于下一步:你需要弄清楚如何将你的应用部署到支持 Java 8 的环境中。
当然,在实践中,这个考量可能来得更早:在你愿意或被允许尝试 Java 8 之前,你需要先有一个支持 Java 8 的部署计划。在许多情况下,你甚至不会去尝试,因为你事先就知道目前不可能将 Java 8 引入到你的生产系统中。
不可能?真的吗?让我们针对特定的部署环境重新考虑一下...
对于 Java EE 服务器,通常存在一个以捆绑 JDK 版本形式出现的升级障碍。对于 WebSphere,即使在 WAS 8.5 上,默认的 JDK 仍然是 Java 6,Java 7 是可选的。而 WebLogic 的最新版本则更强地基于 Java 7。然而,这两款服务器都不允许你自由选择要使用的 JDK 版本。
由于应用服务器栈通常与特定的 JDK 版本深度集成,因此不建议直接将其运行在不同的 JDK 安装上。当前一代的应用服务器即使在针对 JDK 8 的启动冒烟测试中也可能无法存活。
对于 GlassFish 和 JBoss AS 等灵活的产品,你可能可以将它们指向一个 JDK 8 安装,并使服务器运行起来。然而,这通常只有在使用 "-target 1.7" 时才有效;一旦你开始使用 Java 8 语言特性,服务器的某些部分和一些集成的服务提供商就会在 "-target 1.8" 下崩溃...
WildFly 8 是 JBoss AS 7 的继任者,它实际上是第一个具有基本 JDK 8 兼容性的 EE 服务器。其开源版本已经普遍可用。然而,Red Hat 尚未提供基于 WildFly 8 的 JBoss EAP 版本的官方支持。
至于 GlassFish 4,Oracle 已于去年停止商业支持,此后没有发布维护版本,也没有官方支持合同可用。尽管如此,基本的 JDK 8 支持可能会在今年晚些时候的 GlassFish 4.0.1 版本中出现。
更新(9月30日):半年后,GlassFish 4.1 现已支持 JDK 8。此外,Oracle 还认证了最近发布的 WebLogic 12.1.3 —— 该版本支持部分 EE 7 规范,但尚未成为完整的 EE 7 平台服务器 —— 现已可在 JDK 8 上运行。
像 Tomcat 和 Jetty 这样的轻量级 Web 应用服务器在这方面具有明显的优势,因为它们不依赖于任何特定 JDK 版本的细节。Tomcat 8 和 Jetty 9 已经针对 OpenJDK 8 进行了半年的测试,并且普遍声明与 Java 8 兼容。即使是 Tomcat 7 也加入了这个行列,也获得了升级的 Eclipse 编译器等支持。
因此,Tomcat 和 Jetty 都可作为与 JDK 8 一起使用的立即可用的生产级选项。从 Pivotal 的角度来看,我们正尽最大努力支持 JDK 8 上的 Tomcat,这包括我们对 Apache Tomcat 本身的参与以及通过我们的 tc Server 产品。
当然,你通常不会使用纯粹的 Tomcat 或 Jetty,而是在你的部署单元中添加特定的框架和库。显然,这些库也需要与 Java 8 兼容。它们中的许多天然就兼容,但请务必仔细检查你的持久化提供商和绑定框架,因为它们可能尚未完全支持 Java 8 字节码。
Spring Framework 4 一开始就设计成与 Java 8 兼容的方式。事实上,我们在第一个 OpenJDK 8 发布候选版本可用之前,就发布了带有全面 Java 8 开发支持的 Spring Framework 4.0 GA。
从我们的角度来看,在 Java 8 上运行 Spring Framework 4 是许多环境中的绝佳组合,不仅限于 Tomcat、Jetty 或 WildFly,还包括最近的嵌入式引擎,如 Reactor 或 Undertow,以及其他各种自定义应用架构。
现在正是尝试在 Java 8 上构建 Spring 应用的最佳时机,因为 JDK 8 已经正式发布了!你会惊讶于它能为你带来多大的便利。结合 IntelliJ IDEA 或 Eclipse 中最近支持 Java 8 的工具,你可能会发现你需要的一切都近在眼前。
所以请不要等到 2016 年才开始尝试 Java 8...
我邀请您参加我下周关于 Spring Framework 4 在 Java 8 上的网络研讨会,重点介绍 Spring 应用中 Java 8 特性的使用:https://springjava.cn/blog/2014/02/11/webinar-spring-framework-4-0-on-java-8-march-25
今年您还会在多个会议上听到我关于 Spring 在 Java 8 上的演讲,例如柏林专家日(Berlin Expert Days)、德国 JAX、纽约 QCon、阿姆斯特丹 GOTO、欧洲 ÜberConf,当然还有我们自己的 SpringOne,今年九月将在德克萨斯州达拉斯举行!