首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring事务管理-理解Spring参考、全局/本地、编程/声明-两个问题

Spring事务管理-理解Spring参考、全局/本地、编程/声明-两个问题
EN

Stack Overflow用户
提问于 2011-05-11 10:05:02
回答 1查看 3.2K关注 0票数 1

我正在使用SpringFramework3.0.5和Hibernate框架,我开始使用现在的Spring事务管理。我有一些问题,只是为了了解Springs事务管理是如何工作的。

1)

我在Spring参考中读到了这些东西:

a)跨不同事务API (如Java、JDBC、Hibernate、Java (JPA)和JDBC (JDO) )的一致编程模型。

Spring解决了全局和本地事务的缺点。它使应用程序开发人员能够在任何环境中使用一致的编程模型。您只编写一次代码,它可以从不同环境中的不同事务管理策略中获益。

c)使用EJB或JTA的唯一选择是用本地事务(如JDBC连接上的事务)编写代码,如果您需要在全局容器管理的事务中运行该代码,则会面临大量的重新工作。使用Spring,只需要更改配置文件中的一些bean定义,而不是代码。

)我知道我可以在Spring中使用那些API,而不需要更改代码

(从b)我知道我可以使用全局或本地事务*而无需更改代码

(从c)我了解到,在不同API和全局/本地事务之间切换时,需要更改代码

现在我想知道什么是正确的?

=>我需要修改代码吗?在不同API之间切换的时候?在本地和全球事务之间切换时?(或者它可能依赖于预博弈和声明式事务管理?)

2)

我还问了另外一个问题:我真的想知道编程事务管理的使用是什么?无论我读到什么地方,都推荐使用声明式事务管理。

我在春季参考文献中也读到了这篇文章:

(

d)使用编程事务管理,开发人员使用抽象,它可以运行在任何底层事务基础结构上。使用首选的声明式模型,开发人员通常很少或根本不编写与事务管理相关的代码,因此不依赖Spring Framework事务API或任何其他事务API。

我理解:通过编程事务管理,我可以使用任何底层事务基础结构.这意味着什么?上面提到的不同API?

使用声明式,我不依赖于任何api。

=>这不是一样吗?当我可以使用任何底层api时,我不依赖于任何api。我不太明白这一点。

有什么不同吗?我只知道声明性事务管理更轻量级,我不需要自己启动事务,捕获异常并处理它等等。但是,编程事务管理的用途是什么呢?

谢谢你的答覆:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-11 10:12:12

  1. 你想得有点过头了。Spring提供了一个抽象事务模型,它具有相同的API和语义,而不管您使用的是哪种底层事务技术。为了从一种技术切换到另一种技术,您通常需要更改Spring配置,但是您的想法是永远不需要更改业务逻辑。因此,无论您是使用本地的、在VM中的JDBC事务还是完全分布式的、两阶段提交XA JPA风格的事务,Spring代码中的API使用情况都是一样的。
  2. 声明性事务管理与编程事务管理之间的区别在于,对于前者,您可以使用注释或XML来说明哪些代码应该是事务性的。使用编程风格,您可以将使用方法调用的事务逻辑特别封装到Spring中。注意,如果您使用声明式样式,那么Spring将在生成的逻辑中包装您的代码,该逻辑使用编程风格。后者只是前者的一个更明确和低级的版本。它给了您更多的控制,但它更冗长。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5962489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档