9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

2006 年度十大新闻:Spring+JPA,下一个人气组合?

  • 2007-04-03
  • 本文字数:1583 字

    阅读完需:约 5 分钟

新闻原文发布于 2006 年 6 月 7 日

Spring + Hibernate 常常被称为 Java Web 应用背后人气最旺的框架组合。尽管 JCP 今天通过的 Web Beans JSR 打算将 JSF + EJB + JPA 、来自 JBoss Seam(Spring 除外)的一些组件和 EJB 3(目前能够提供有基本拦截和依赖注入功能的简化 Session Bean 框架)的一个 Web 组合进行标准化,现在 Spring 2.0 为 JPA 提供了完整的 EJB 容器契约,允许 JPA 在任何环境内可以在 Spring 管理的服务层使用(包括 Spring 的所有 AOP 和 DI 增强)。关于下一个实际组合会是 EJB、Spring + Hibernate 还是 Spring + JPA 的论战,早已充斥于耳。

Tomcat Geronimo 上,我们已经能看见独立使用 JPA 的演示范例。但这个方法存在一些局限性,例如,在同一个事务内部,我们无法跨实体管理器(Entity Managers)自动共享持久化上下文环境(Persistence Context)。Spring 通过实现 EJB 容器契约,允许在相同事务内以跨组件方式注入持久对象,同时也具备让组件连接事务的能力,并允许对扩展持久化上下文环境的支持。因此,Spring 2 允许随同容器内部支持的所有功能特性一起使用 JPA。

最近,Mark Fisher 在独立环境中使用来自 Glassfish 的 Toplink Essentials JPA 参考实现向大家演示了如何配合 Spring 使用 JPA 。Mark 选取了一个简单的 JPA 领域模型,并展示了如何让它在 Spring 中运行:

我打算扩展 Spring 的 JpaDaoSupport 类,这个类提供了获取 JpaTemplate 的便利方法。如果你以前就在 Spring 下使用过 ODBC 或者其他的 ORM 技术的话,那么想必你对这种方法已经颇有了解了。应当注意的是,JpaDaoSupport 的使用是可选的。我们可以通过将 EntityManagerFactory 传给 JpaTemplate 的构造子的方式来创建 JpaTemplate 对象。事实上,JpaTemplate 本身就是可选的。如果你不希望 JPA 异常被自动转换成 Spring 的运行期异常层级结构(runtime exception hierarchy),那么你就可以完全不必使用 JpaTemplate 了。在这种情况下,你可能仍然对 Spring 的 EntityManagerFactoryUtils 类感兴趣,因为这个类提供了一个类方法,它能帮助你很方便地获取共享的(因此也是事务性的)EntityManager。

同时,Spring 2.0 文档也已经更新了一个新的章节,使用与 Hibernate 或 TopLink 相同的方式展示了如何支持 JPA。Rod Johnson 在 Java One 大会上向 InfoQ 表示,Spring 在确保 JPA 整合的可移植性方面做出了很多努力,目的是为了保证在 Hibernate、TopLink 和 OpenJPA 等 JPA 提供商之间进行切换变得更加容易。

最近,Spring 的 Pitchfork 项目(向 WebLogic 提供完整 EJB API 的一部分)被用于演示如何在 Tomcat 上完整地部署 EJB ,尽管在 Tomcat 上使用 Spring 运行完整 EJB 的方法并不打算用于生产用途,Rod Johnson 表示“其目的并不是为了写出一个 EJB 容器”。JBoss 同样也提供了一个可嵌入的 EJB 容器,可以在具备一定局限性的条件下在 Tomcat 上运行 EJB 3。

上周,Gavin King 和不少 Spring 团队人员之间就 JBoss 和 EJB 3 vs. Spring“类 EJB 容器”(这是 Gavin 的叫法)问题爆发了一场大规模舌战。Spring 团队主张,JPA 是新 EJB 规范的主要价值所在,而在依赖注入和 AOP 能力方面,Session Bean 仅仅是 Spring 的很小的子集。他们在力挺 Spring + JPA。Gavin King 反击说,他们(Spring 团队)试图通过力推 Spring 的方式,进一步加强 Spring 的市场锁定,而不是“通过规范提供的扩展点为 EJB 3 创建附加组件”。

在 2006 和 2007 年,在事务性和持久性 Java Web 应用开发的下一个实际标准领域,必将涌现出许多竞争和创新。目前看来,存在三个阵营,Sun/JCP、JBoss 和 Spring。社区将齐聚 EJB 阵营还是仍然对其嗤之以鼻?是继续固守 Spring + JPA 还 Spring + Hibernate 阵营?当 Web Beans 规范最终敲定时,事态将会变得更加引人注目。InfoQ 将持续为您追踪报道它们每一步发生的变化与创新。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2007-04-03 22:151777
用户头像

发布了 117 篇内容, 共 14.0 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

努力争取一次通过软考

IT蜗壳-Tango

5月日更

使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打

Jerry Wang

SAP abap APC

架构实战营 模块四作业

Dylan

架构实战营

华仔架构训练营作业(模块四)

不听不听王八念晶

身份认证

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

Dubbo 令牌验证和优雅停机

青年IT男

dubbo

如何查看某个用户指定时间段的ABAP开发记录

Jerry Wang

SAP abap SAPGUI

如何实现一个简易版的 Spring - 如何实现 AOP(上)

mghio

Java 技术 后端 基础知识 spring aop

架构实战营模块 4 作业

梦寻解语花

架构实战营

SAP Fiori里的List是如何做到懒加载Lazy load的

Jerry Wang

JavaScript SAP Fiori SAP UI5

sap.ui.require in SAP UI5 and require in nodejs

Jerry Wang

nodejs SAP SAP UI5

架构师训练营模块4作业

歲月鎏金😈

SAP UI5, CRM, S/4HANA 和 C4C里的Association, Composition and Aggregation

Jerry Wang

JavaScript CRM SAP SAP UI5

ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较

Jerry Wang

JavaScript nodejs CRM SAP C4C

今天社区团购了吗?

lenka

5月日更

架构实战营 模块4 作业

CR

S/4HANA for Customer Management里的搜索分页处理

Jerry Wang

CRM SAP abap S/4HANA

S4HANA和CRM Fiori应用的搜索分页实现

Jerry Wang

CRM SAP Fiori SAP UI5 S/4HANA

过拟合 - DAY13

Qien Z.

5月日更 过拟合

架构实战营 模块四作业

夏日

架构实战营

S4CRM和C4C的技术比较

Jerry Wang

CRM SAP ERP abap Cloud for Customer

如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity

Jerry Wang

Java SAP abap

千万级学生管理系统的考试试卷存储方案

Lane

作业 - 设计千万级学生管理系统的考试试卷存储方案

a1vin-tian

架构实战营

千万级学生管理系统的考试试卷存储方案

王瑞强

架构实战营

你真的会用ABAP, Java和JavaScript里的constructor么?

Jerry Wang

JavaScript CRM SAP abap

架构训练营模块四作业

Neil43

架构训练营

第四课作业

杰语

思考题太难了

Nydia

SAP UI5和CRM WebUI的View和Controller是如何绑定的

Jerry Wang

CRM SAP abap WebClient UI SAP UI5

mongodb 修改字段类型

xiaolu

mongodb

  • 扫码添加小助手
    领取最新资料包
2006年度十大新闻:Spring+JPA,下一个人气组合?_Java_Floyd Marinescu_InfoQ精选文章