领先一步
VMware 提供培训和认证,助您加速进步。
了解更多SpringOne 进展顺利。今年是为期 3 天的展会,比去年的 2 天有所增加,再次看到数百名与会者参加 Spring 会议真是太棒了。这次我在展会上非常放松,因为开幕主题演讲结束后我就没有其他会议了,也不需要制作幻灯片。
现在,Adrian 正在准备宣布关于 Spring 工具的一项重大消息。嗯,实际上他正在对鸭子类型进行一次独特的个人解读,我确信您会听到的……
稍后会详细介绍,但首先我需要分享一些关于昨天的新闻。我很高兴地宣布,我们已与 IBM 合作,在 IBM 的旗舰产品 WebSphere Application Server 上认证了 Spring。由于 Interface21 的大部分客户群都在大型企业中,我们看到了大量的 WebSphere 用户,并且多年来一直希望确保理想的集成。很高兴看到 IBM 也认同这一目标。客户也是推动他们致力于集成的主要原因,因为其中许多客户已经采用了 Spring 并从中获得了巨大的成效。随着 Spring 的采用从项目逐个项目转向战略性部署,此类客户希望知道这种组合是可支持的,并且双方供应商都支持它。
您可以阅读 新闻稿。但是,由于新闻稿是面向管理人员的,并且在相关公司和公关机构之间会经过审查和反复讨论,直到变得毫无意义,所以我可能更容易用英语解释这到底意味着什么,而不是营销术语。
如果您熟悉 Java EE 和 JTA 规范,您就会知道它们存在一些空白——尤其是,您如何处理诸如事务挂起等重要事项,而这些是您无法使用 UserTransaction 完成的。这些是边缘情况,但当您遇到其中一种情况时,可能很难找到解决方法。虽然将事务管理委托给 Spring 远比直接使用 JTA 要好(出于可测试性、异常处理和语义完整性的原因),但如果标准 JTA 功能是唯一可用的,那么其功能的空白可能会有问题。
幸运的是,有一个解决方案可以帮助 Spring 最大限度地发挥底层平台的潜力。Spring 提供了一个事务抽象——PlatformTransactionManager——它的语义比 JTA 更完整,但不对其环境做出任何假设。这是我们称之为 **可移植服务抽象** 的一个关键例子。通常情况下,您不会直接使用 PlatformTransactionManager,因为 Spring 的声明式事务管理为您提供了一个独特的强大选项,可以将编程事务应用于任何 POJO,但它是 Spring 中声明式和编程式事务管理的基础。由于我们不对环境做出任何假设,并且环境细节不会泄露到您的代码中并降低可移植性,因此我们可以安全地利用平台特定功能。我们已经为 WebLogic 这样做了,Oracle 为 OC4J 这样做了,现在我们与 IBM 合作,为 WebSphere 提供了首屈一指的集成。
遵循 Spring 的核心价值主张,我们处理了基础架构,这样您就无需操心。正如您所料,新的 WebSphere 事务管理器非常易于使用。如果您正在将 WebSphere 与 Spring 结合使用,您应该使用我们与 IBM 合作开发的新 PlatformTransactionManager 抽象。这是一个微不足道的配置设置。您将使用新的 WebSphereUowTransactionManager,而不是 JtaTransactionManager,如下所示:
更多技术细节请参阅 IBM DeveloperWorks 的文章 在 WebSphere Application Server 中使用 Spring 和 Hibernate。请注意,如果您以前读过这篇文章(或者您的经理读过之前的版本并因此感到担忧),这篇文章已经得到了显著更新。同样在 DeveloperWorks 上,还有一篇关于我和 IBM 的 Paul Buck(WebSphere 开源总监)讨论集成工作的访谈。
本文的作者之一,来自英国 IBM Hursley 实验室的 Sara Mitchell,正在参加 SpringOne 大会,并将于明天就 WebSphere 上的 Spring 进行演讲。Sara 在集成方面做了大量技术工作,很高兴看到她通过我们的论坛和演讲积极参与 Spring 社区。IBM 的 Savio Rodrigues 也出席了会议,并且似乎很享受这次盛会。