文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring框架的事物支持模型优势有哪些

2023-06-20 11:59

关注

这篇文章主要讲解了“Spring框架的事物支持模型优势有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring框架的事物支持模型优势有哪些”吧!

全面的事务支持是使用Spring Framework的最令人信服的原因之一。Spring框架为事务管理提供了一致的抽象,具有以下优点:

下面的部分描述Spring框架的事物特性和技术:

本章还讨论了最佳实践,应用程序服务器集成以及常见问题的解决方案。

1.1 Spring框架的事物支持模型的优势

传统上,Java EE开发人员在事务管理中有两种选择:全局或本地事务,这两者都有很大的局限性。下两节将回顾全局和本地事务管理,然后讨论Spring框架的事务管理支持如何解决全局和本地事务模型的局限性。

1.1.1 全局事物

全局事务使你可以使用多个事务资源,通常是关系数据库和消息队列。应用服务器通过JTA管理全局事务,而JTA是一个繁琐的API(部分是由于其异常模型)。此外,通常需要从JNDI派生JTA UserTransaction,这意味着你还需要使用JNDI才能使用JTA。全局事务的使用限制了应用程序代码的任何潜在重用,因为JTA通常仅在应用程序服务器环境中可用。

以前,使用全局事务的首选方法是通过EJB CMT(容器管理的事务)。CMT是声明式事务管理的一种形式(与编程式事务管理不同)。尽管使用EJB本身必须使用JNDI,但是EJB CMT消除了与事务相关的JNDI查找的需要。它消除了大多数(但不是全部)编写Java代码来控制事务的需求。重大缺点是CMTJTA和应用程序服务器环境相关联。而且,仅当选择在EJB中(或至少在事务性EJB幕后)实现业务逻辑时,此功能才可用。EJB的缺点是如此之大,以至于这不是一个有吸引力的提议,特别是在面对声明性事务管理的引人注目的替代方案时。

1.1.2 本地事物

本地事务是特定于资源的,例如与JDBC连接关联的事务。本地事务可能更易于使用,但有一个明显的缺点:它们不能跨多个事务资源工作。例如,使用JDBC连接管理事务的代码不能在全局JTA事务中运行。因为应用程序服务器不参与事务管理,所以它无法帮助确保多个资源之间的正确性。(值得注意的是,大多数应用程序使用单个事务资源。)另一个缺点是本地事务侵入了编程模型。

1.1.3 Spring框架的一致性编程模型

Spring解决了全局事物和本地事物的缺陷。它使应用程序开发人员可以在任何环境中使用一致的编程模型。你只需编写一次代码,即可从不同环境中的不同事务管理策略中受益。Spring框架提供了声明式和编程式事务管理。大多数用户喜欢声明式事务管理,在大多数情况下我们建议这样做。

通过编程式事务管理,开发人员可以使用Spring框架事务抽象,该抽象可以在任何基础事务基础架构上运行。使用首选的声明式模型,开发人员通常编写很少或没有编写与事务管理相关的代码,因此,它们不依赖于Spring框架事务API或任何其他事务API。

你是否需要一个应用程序服务器来进行事务管理

Spring框架的事务管理支持更改了有关企业Java应用程序何时需要应用服务器的传统规则。

特别是,你不需要纯粹用于通过EJB进行声明式事务的应用程序服务器。实际上,即使你的应用服务器具有强大的JTA功能,你也可能会决定,与EJB CMT相比,Spring框架的声明式事务提供更多的功能和更高效的编程模型。

通常,仅当你的应用程序需要处理跨多个资源的事务时才需要应用程序服务器的JTA功能,而这并不是许多应用程序所必需的。许多高端应用程序使用单个高度可扩展的数据库(例如Oracle RAC)来代替。独立事务管理器(例如Atomikos TransactionsJOTM)是其他选择。当然,你可能需要其他应用程序服务器功能,例如Java消息服务(JMS)和Java EE连接器体系结构(JCA)。

Spring框架使你可以选择何时将应用程序扩展到完全加载的应用程序服务器。不再使用EJB CMTJTA的唯一选择是使用本地事务(例如JDBC连接上的事务)编写代码,并且如果你需要将该代码在全局的、容器管理的事务中运行,则面临大量的工作。使用Spring框架,仅需要更改配置文件中的某些Bean定义(而不是代码)。

感谢各位的阅读,以上就是“Spring框架的事物支持模型优势有哪些”的内容了,经过本文的学习后,相信大家对Spring框架的事物支持模型优势有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯