文档章节

AOP事务的例子

乒乓狂魔
 乒乓狂魔
发布于 2015/10/10 08:09
字数 171
阅读 657
收藏 3

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

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

前提:

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

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

结果是:

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

输入图片说明

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

© 著作权归作者所有

共有 人打赏支持
乒乓狂魔
粉丝 996
博文 105
码字总数 271356
作品 0
长宁
程序员
加载中

评论(7)

乒乓狂魔
乒乓狂魔

引用来自“iq527”的评论

使用Spring的事务切面时, Service方法中调用内部方法时, 无法实施切面中的增强 0
http://jinnianshilongnian.iteye.com/blog/1487235
是的
iq527
iq527
使用Spring的事务切面时, Service方法中调用内部方法时, 无法实施切面中的增强 0
http://jinnianshilongnian.iteye.com/blog/1487235
_adian
_adian
什么跟什么啊,还aop
泥沙砖瓦浆木匠
泥沙砖瓦浆木匠

引用来自“乒乓狂魔”的评论

引用来自“泥沙砖瓦浆木匠”的评论

0其他没什么 就是 private void saveAndSendMsg

你改成public后,虽然被代理了,但是仍然没有开启事务
乒乓狂魔
乒乓狂魔

引用来自“泥沙砖瓦浆木匠”的评论

0其他没什么 就是 private void saveAndSendMsg

你改成public后,虽然被代理了,但是仍然没有开启事务
乒乓狂魔
乒乓狂魔

引用来自“泥沙砖瓦浆木匠”的评论

0其他没什么 就是 private void saveAndSendMsg

这只是第一个问题
泥沙砖瓦浆木匠
泥沙砖瓦浆木匠
0其他没什么 就是 private void saveAndSendMsg
在同一个类中调用另一个方法没有触发 Spring AOP 的问题

起因 考虑如下一个例子: 在这个例子中, 我们定义了一个注解 , 这个是一个方法注解, 我们的期望是当有此注解的方法被调用时, 需要执行指定的切面逻辑, 即执行 方法. 在 SomeService 类中, 方法...

永顺
2017/02/17
0
0
spring aop , tx

一 .面向切面编程(AOP)的基础概念: 以一个普通的java方法来举例 a. 横切关注点:如上面5个通知的位置,在java对象中,可以这些具有类似共同处理逻辑的位置加入如权限验证、事物处理、日志记...

SKYCOBS
2016/08/18
13
0
【Spring AOP】学习记录(二)

国庆过得好像有点忙,是不是生活过得简单了,就有时间享福了?当然国庆假期也抽点时间来学习学习,不然赶不上年轻人的脚步 学啥 今天学习了一下aop的事务管理,没分析内部,估计只不过对使用...

小彬彬_
2016/10/04
8
0
我们为什么要使用 AOP

前言 一年半前写了一篇文章Spring3:AOP,是当时学习如何使用Spring AOP的时候写的,比较基础。这篇文章最后的推荐以及回复认为我写的对大家有帮助的评论有很多,但是现在从我个人的角度来看...

t4i2b10X4c22nF6A
2017/10/26
0
0
Spring切入点表达式常用写法

自从使用AspectJ风格切面配置,使得Spring的切面配置大大简化,但是AspectJ是另外一个开源项目,其规则表达式的语法也稍稍有些怪异。 下面给出一些常见示例的写法: 比如,下面是一个对Servi...

凯文加内特
2016/03/09
22
0

没有更多内容

加载失败,请刷新页面

加载更多

利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

linuxprobe16
今天
5
0
OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
今天
287
6
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
今天
3
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
5
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部