Java EE 6 服务器上的 Spring 3

工程 | Juergen Hoeller | 2010 年 10 月 20 日 | ...

Spring 在 Java EE 6 上 - 可行的组合吗? 当您有 Java EE 6 服务器可以部署时,是否可以轻松地继续使用 Spring? 在今年的 SpringOne 会议上,该会议于几小时前刚刚拉开帷幕,我将再次就 Spring 和 EE 6 进行演讲:现在重点关注 GlassFish 3,它是一款在生产环境中实际可用(而且此时仍然是唯一可用)的 EE 6 服务器。 作为预览,以下是该演示文稿中的四个关键考虑因素……

1. 像 GlassFish 3 这样的 Java EE 6 服务器是 Spring 3 的良好运行时环境

GlassFish 3 提供了许多开箱即用的中间件:Servlet 3.0、JSF 2.0、JPA 2.0,以及传统的 EE 服务,如 JTA 和 JMS——所有这些都非常适合在基于 Spring 的应用程序中使用。GlassFish 还捆绑了一个 JSR-303 验证提供程序、JSR-303 API、JSR-250 通用注解:这些都是与 Spring 3.0 一起使用的关键 API。有了这样的组合,Spring 作为框架和服务器作为中间件平台之间的重叠就降到了最低:基本上只有 EJB 和 CDI 组件模型(仅占 GlassFish 3 代码库的约 5%),Spring 为此提供了一个替代的编程模型,同时与底层相同的平台服务集成。

2. 在 Java EE 6 服务器上选择 Spring 是非常自然的事情

在 GlassFish 3 上,许多开发人员将继续选择例如 Wicket 或 GWT 而非 JSF,Hibernate 而非 EclipseLink,以及 Spring 而非 EJB/CDI。这些决定将由风格考虑和架构需求驱动,其中不乏可移植性方面的考虑。所有这些框架都必须与应用程序一起部署,因为它们不是服务器的核心部分,但这 hardly 会成为决定性因素。就“重量”而言,它们甚至在同一范围内:比较 Hibernate 3.6 jar 和 Spring 3.0 jar 的大小(约 4MB)。

3. 您愿意将目标环境限制在 Java EE 6 服务器上吗?

今天只有 GlassFish 3 可用作最终版本。JBoss 6 仍处于里程碑 5;WebSphere 8 处于早期 beta 阶段。另一方面,Spring 3 可以在 Tomcat 5、6 和 7 上运行,以及在 WebSphere 6.1 等 J2EE 1.4 服务器上运行,以及在 WebSphere 7 等 Java EE 5 服务器上运行。如果碰巧在生产环境中有 EE 6 服务器,那么 Spring 3 是一个“好公民”,并将尽可能多地利用 EE 6 服务器的功能。此外,基于 Spring 3 的应用程序可以部署到 Google App Engine 和 VMforce 等云平台……

4. 世界正在超越 Java EE 6,并且可预见地也将超越 Java EE 7

看看云、看看 NoSQL、看看分布式缓存……Java EE 6 规范捕捉了 2009 年初的最新技术——Spring 3.0 也是如此。然而,自 EE 6 发布以来,替代趋势已移至前沿。Spring 3.1/3.2 将在 2011 年朝着这个方向发展:将提供全新的编程模型功能,可在现有部署平台(例如 Tomcat 6 或 WebSphere 7)上立即使用,而无需进行服务器升级。凭借这种固有的敏捷性,Spring 将继续比缓慢的 Java EE 周期领先数年。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有