领先一步
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" 下出现问题……
JBoss AS 7 的继任者 WildFly 8,实际上是第一个对 JDK 8 提供基本兼容性的 EE 服务器。其开源版本已经普遍可用。然而,Red Hat 方面尚未为其提供正式支持,例如基于 WildFly 8 的 JBoss EAP 版本。
至于 GlassFish 4,Oracle 去年已停止商业支持,自那时以来未发布维护版本,也没有可用的官方支持合同。尽管如此,今年晚些时候的 GlassFish 4.0.1 版本可能会提供基本的 JDK 8 支持。
更新(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 方面正在尽最大努力支持 Tomcat 在 JDK 8 上的运行,通过我们对 Apache Tomcat 的参与以及通过我们的 tc Server 产品。
当然,您通常不会使用纯粹的 Tomcat 或 Jetty,而是会在您的部署单元中添加特定的框架和库。显然,这些库中的每一个也需要与 Java 8 兼容。其中许多自然是兼容的,但请仔细检查您的持久化提供商和绑定框架,因为它们可能尚未支持 Java 8 字节码。
Spring Framework 4 代从一开始就设计为与 Java 8 兼容。事实上,在第一个 OpenJDK 8 Release Candidate 发布之前,我们就发布了 Spring Framework 4.0 GA,并提供了全面的 Java 8 开发支持。
从我们的角度来看,Spring Framework 4 在 Java 8 上是一个很好的组合,适用于许多环境,不仅与 Tomcat、Jetty 或 WildFly 配合,还与 Reactor 或 Undertow 等近期嵌入式引擎以及其他自定义应用程序架构配合。
现在是尝试这种基于 Spring 的 Java 8 方案的最佳时机,因为 JDK 8 已经正式发布!您会惊讶于它能带您走多远。结合 IntelliJ IDEA 或 Eclipse 中最近的 Java 8 兼容工具,您可能会发现您所需的一切就在那里,就在此刻。
所以,请不要等到 2016 年才尝试 Java 8……
我诚挚邀请您参加我下周关于 Spring Framework 4 on Java 8 的网络研讨会,会议将涵盖关键功能主题,重点关注 Java 8 特性在基于 Spring 的应用程序中的使用:https://springframework.org.cn/blog/2014/02/11/webinar-spring-framework-4-0-on-java-8-march-25
今年,您还会在多个会议上看到我关于 Spring on Java 8 的演讲,例如在 Berlin Expert Days、JAX Germany、QCon New York、GOTO Amsterdam、ÜberConf Europe,当然还有我们自己的 SpringOne(今年九月在德克萨斯州达拉斯举办)!