Oracle 将 Oracle 应用服务器集成代码贡献给 Spring 框架

工程 | Rod Johnson | 2007 年 2 月 27 日 | ...

关于应用服务器拥抱 Spring 的主题,另一个更新。Oracle 一直致力于与他们的应用服务器进行增值集成。

这类似于我们在 WebLogic 8.1 及更高版本中使用 WebLogicJtaTransactionManager 的方式。在 OC4J 环境中,应使用 OC4JJtaTransactionManager 代替通用 JtaTransactionManager,它提供了以下好处

  • 无需使用 JNDI 查找即可直接访问事务管理器和帮助程序类
  • 自动检测服务器版本以充分利用不同版本中不同的事务管理器实现
  • 控制事务隔离级别:JTA 中不可用的非常有用的功能

对于熟悉 JTA 的人来说,使用 UserTransaction(就像在 Java EE 中以编程方式控制事务时一样)存在一些明显的差距,也许这可以理解,因为在将近十年前 J2EE 首次构思时,人们做出的假设现在已经过时了,即没有人会想要在没有 EJB 的情况下进行事务管理。

问题是,某些操作(例如挂起事务(例如获取“需要新”语义))仅在 TransactionManager 上才有可能。此接口在 JTA 规范中是标准化的,但与 UserTransaction 不同,它不提供众所周知的 JNDI 位置或其他获取它的方法。其他一些事情,例如隔离级别的控制或特定于服务器的“事务命名”(用于监控或其他目的),使用 JTA 完全不可能。

因为 Spring 提供了丰富的、可移植的事务抽象,所以在后台它完成了驱动 JTA 和其他 API 的工作,因此您的代码不需要了解任何底层基础设施,因此可以利用任何提供更多控制或更高效率的专有 API。Spring 支持声明式事务和编程式事务,因此您可以将事务管理分层到不知道任何事务的 POJO 上;或者,如果事务管理是您的业务逻辑的一部分,则可以使用更优雅的 API,它提供比 JTA 更多的功能,不依赖于 JNDI,并且使用起来更简洁。

此代码将进入 Spring 核心,并将随 Spring 2.0.3 一起发布。感谢 Oracle 对 Spring 的持续支持。Spring 在他们的 Fusion Middleware 平台和他们的 SCA 策略中发挥着重要作用。当然,Interface21 也是 Spring 的创始 SCA 合作伙伴,我们正在与 Oracle、BEA、IBM 和其他公司合作开发 Spring 的 SCA 绑定。正如 Oracle SCA 高级工程师 Greg Pavlik 去年在博客中写道,这里有很多好处,Spring 应用程序开箱即用地“支持 SCA”

最后,从 Java 程序员的角度来看,一些非常有趣的消息:现在有一个 Spring 集成,允许基于 Spring 的应用程序直接连接到基于 SCA 的 SOA 环境。随着 Spring 成为许多组织构建 J2EE 应用程序的事实标准,我们正在为这些投资打开透明的基于 SCA 的集成的大门。此外,现在 Java 开发人员有一个实用的开源方案来使用 SCA,而无需担心新的学习曲线或大量新的结构。使用 Spring,它可以仅仅是 POJO:一直到最后都是乌龟。很多人直接问我关于 Java 编程和 SCA 的问题。Spring 是一个很好的答案。
这让我想起:SCA Java 工作组中发生了一些有趣的事情,Adrian(他在 Interface21 负责所有艰苦的工作!)或我应该在有时间时发布一个正式的更新……

Oracle 还有更多关于 HA 功能的想法;肯定有一些有趣的可能性,尤其是在 RAC 方面,许多大型企业客户都在使用它。他们非常有兴趣进一步探索 Spring 和 Oracle 技术之间的集成思路,因此请将任何想法反馈到这里或通过您的 Oracle 联系人反馈。Oracle 还维护了一个优秀的 资源页面,介绍 Spring 集成。

获取 Spring 电子报

通过 Spring 电子报保持联系

订阅

领先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部