java – Spring事务内部
情况如下: > Method1中有四种数据库更新方法. Method1使用Spring事务管理语义进行注释. 我有兴趣知道的是: 1. Spring如何知道在成功交易时提交数据库更新?是否有一些引用进行事务管理的Spring实现? 2.由于我们有一个交易层次结构: 简而言之,通过游戏来了解Spring如何在其所有最复杂的细节中执行事务管理或者不仅仅是手动挥动以JTA或其他缩写为中心的解释的文档的参考将是很棒的. 谢谢 最佳答案
让我们做一些基本的陈述.
>事务上下文是一种环境,其中某些特殊属性(数据库会话)可供应用程序运行时使用,否则这些属性不可用.事务上下文通常用于范围事务. 在这里,我重用上面的@stacker给出的示例
您也可以使用xml配置实现相同的功能.让我们把它作为它的流行和广泛使用. 在部署时 > Spring框架检查xml配置文件(着名的applicationContext.xml),并根据配置扫描代码以查找@Transactional注释(假设配置被提及为基于注释).
这就是春季经理人的交易方式.虽然稍微过于简单化了. 现在回答你的问题, Spring如何知道在成功交易时提交数据库更新?是否有一些引用进行事务管理的Spring实现? 每当你在事务下调用一个方法时,你实际上调用一个代理,它首先执行事务顾问(它将开始事务),然后你调用实际的业务方法,一旦完成,另一个事务顾问执行(这取决于返回的方法),将提交或回滚事务). 由于我们有一个事务层次结构:围绕web-request的事务 – >带有Propagation的事务= Method1的RequestNew->带有Propagation的事务= Method2需要,Spring如何进行事务管理以确保事务在正确的上下文与正确的顺序? 在事务层次结构的情况下,spring框架会相应地生成Transaction Advisor检查.对于你提到的例子, > for method1(RequestNew)事务Advsor代码(或事务建议)将始终创建新事务. 有一个image on the spring documentation page很好地总结了这些方面. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |