Oracle 向 Spring Framework 贡献 Oracle Application Server 集成代码

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

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

这类似于我们在 WebLogicJtaTransactionManager 中与 WebLogic 8.1 及更高版本所拥有的。 OC4JJtaTransactionManager 应该在 OC4J 环境中代替通用的 JtaTransactionManager 使用,并提供以下好处

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

对于熟悉 JTA 的人来说,使用 UserTransaction(就像在 Java EE 中以编程方式控制事务时一样)存在一些明显的差距,这或许可以理解,因为 J2EE 最初构思时(近十年前)的过时假设是,没有人希望在没有 EJB 的情况下进行事务管理。

问题在于,某些操作(例如暂停事务(例如,获取“requires new”语义))只能在 TransactionManager 上进行。此接口在 JTA 规范中已标准化,但与 UserTransaction 不同,它没有提供众所周知的 JNDI 位置或其他获取方式。其他一些事情,例如控制隔离级别或服务器特定的“事务命名”(用于监视或其他目的)根本无法通过 JTA 实现。

由于 Spring 提供了丰富的、可移植的事务抽象,因此它在底层驱动 JTA 和其他 API,因此您的代码不需要了解底层基础设施的任何信息,因此可以利用任何专有 API 来提供更多的控制或更高的效率。 Spring 支持声明式和编程式事务,因此您可以将事务管理分层到不了解任何相关信息的 POJO 上;或者,如果事务管理是业务逻辑的一部分,则可以使用比 JTA 更优雅的 API,该 API 提供比 JTA 更多的功能,不与 JNDI 绑定,并且使用起来不那么冗长。

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

最后,从 Java 程序员的角度来看,有一些非常有趣的消息:现在有一个 Spring 集成,允许基于 Spring 的应用程序直接连接到基于 SCA 的 SOA 环境。 随着 Spring 成为许多组织构建 J2EE 应用程序的事实标准,我们正在为这些投资打开通向透明的基于 SCA 的集成的大门。 此外,现在还有一个实用的开源方案,供 Java 开发人员加入 SCA,而无需担心新的学习曲线或大量新结构。 有了 Spring,它可以只是 POJO:从头到尾都是 turtle。 我有很多人直接问我关于 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 社区中所有即将举行的活动。

查看所有