AOP事务的例子

给大家看一个例子,共同来分析下存在的问题

场景:保存用户成功后,发送一个消息。如果没有保存成功,回滚同时不能发送消息

前提:

  • 1 先不考虑发送消息会失败的情况,就是一旦调用发送消息的方法就一定会发送成功。
  • 2 tx:annotation-driven也已正常配置

关注问题: AOP是否成功?事务能否正常回滚?

结果是:

  • UserService没有被代理,如何解决
  • 上述问题解决后,会发现并没有开启事务,如何解决?

看看上面的伪代码能不能达到目的

时间: 2024-12-03 11:20:09

AOP事务的例子的相关文章

C#用delegate实现AOP事务[C# | AOP | delegate]

前言 上一篇 C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink ]是实现或者说达到AOP效果的一种方式,其实最早设计在C#中使用AOP来完成事务的方案是准备用delegate的,但无奈不习惯用 这个玩意,也理解不深,后来被Attribute吸引了,这个方案就搁浅了,不过现在我又回来了 : ) 正文 我们先来看一段代码雏 形: class Test

C#用Attribute实现AOP事务

C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink ] 阅前注意 1.整篇文章的核心和突破点在于上下文Context的使用,务必注意CallContext在整个程序中起到的作用 2.本文中看到的SqlHelper使用的是微软SqlHelper.cs. 3.本文重点在于如何实现,并且已经测试通过,只贴关键性代码,所以请认真阅读,部分代码直接拷贝下来运

C# 用Attribute实现AOP事务 [C# | AOP | Attribute | ContextAttribute | IContributeObjectSink | IMessageSink ]

前言      使用Attribute来实现方法级别事务一直是我的梦想,浅谈Attribute [C# | Attribute | DefaultValueAttribute]有体现我的无奈,Attribute确实是真真切切的非侵入式的东西(其实我是想侵入的: ) ),前有DUDU的Attribute在.net编程中的应用系列文章,但是总是离想象和需求有那么点出入,通过三天的努力,Google的陪伴,下面和大家一起分享我这三天的成果 用Attribute实现AOP事务 吧!   致谢文章    

SSH AOP事务配置求解

问题描述 transactionManager和jtatransactionmanager可以同时配置在XML中并使其各自生效么a(){for(){b();}}我有个这样的方法,ab都是事务方法,想b出错的时候只把错的回滚,没错的还是继续提交,但是我现在一回滚就全都回滚了,我原来的XML值配置的transactionManager,好像说要用REQUIRES_NEW这个属性得需要jtatransactionmanager.怎么两者都兼容呢? 解决方案 解决方案二:大神们求助哇

求大神帮忙 spring aop 方式事务不回滚怎么搞?

问题描述 求大神帮忙 spring aop 方式事务不回滚怎么搞? spring 版本 4.1.7 代码如下: 表: CREATE TABLE users (id int(11) unsigned NOT NULL AUTO_INCREMENT,nick_name varchar(100) DEFAULT NULL,password varchar(100) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAU

AOP@Work: AOP和元数据:完美的匹配,第1部分

元数据增强的AOP的概念和结构 简介:在这篇由两个部分组成的系列文章的第 1 部分中,作者 Ramnivas Laddad 将对新的元数据功能进行概念性介绍,并展示在加入了元数据注释后, AOP 可以在什么地方获得最大的好处.然后他将分五步完成一个设计改造,从一 个无元数据的 AOP 实现开始,最终得到一个结合了 Participant 设计模式与注 释者-供应者(annotator-supplier)方面的 AOP. 新的 Java 元数据功能(facility)是 J2SE 5.0 的一部分

分布式事务系列(1.2)Spring的事务体系

1 系列目录 分布式事务系列(开篇)提出疑问和研究过程 分布式事务系列(1.1)Spring事务管理器PlatformTransactionManager源码分析 分布式事务系列(1.2)Spring事务体系 分布式事务系列(2.1)分布式事务模型与接口定义 分布式事务系列(3.1)jotm的分布式案例 分布式事务系列(3.2)jotm分布式事务源码分析 分布式事务系列(4.1)Atomikos的分布式案例 2 三种事务模型 三种事务模型如下: 本地事务模型 编程式事务模型 声明式事务模型 先来

Spring中的AOP(七)——基于XML配置文件方式的AOP

    除了前面介绍的基于JDK1.5的注解方式来定义切面,切入点和增强处理外,Spring AOP也允许直接使用XML配置文件来管理它们.在JDK1.5之前,只能使用配置文件的方式来管理,在Spring2.X后提供了一个新的aop命名空间来定义切面.切入点和增强处理.     相比之下,使用XML配置文件方式有如下优点: 如果没有使用JDK1.5以上版本,只能使用XML配置文件的方式 对早期的Spring用于来说更加习惯,而且这种方式允许使用纯粹的POJO来支持AOP 采用XML配置方式时,我

分布式事务

分布式      总体来看,如果所有数据的修改仅依靠单个数据源就能完成,则这个事务就相当简单了.然而,随着商业需求的日益增加,应用程序变得越来越复杂,经常需要访问多个数据库,这些数据库通常分布在不同的地方,这就是分布式事务.分布式事务修改的数据存储在多个或多种类型的数据源中,这些数据源分布在多台机器上,甚至更复杂的情况.    设想有一个事务,要求数据变化发生在两个分离的数据库中,仍然要求所有的ACID特性测试能够满足.基本的事务处理不能满足要求,因为如果其中一个数据库服务器失败,无法确保另外一