Aop事务小结(事务管理器和自身构建)
声明市事务是利用AOP来实现的。
1、采用事务管理器AOP:
<!--3、配置事务切面;控制住连接池 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="comboPooledDataSource"></property></bean>2、配置开启基于注解的事务控制 <tx:annotation-driven/>3、给事务方法上加注解 @Transactional
1)对切面类的方法进行配置
2)将切面类和业务逻辑组件都加入到容器
3)告诉SpringIOC容器哪个类是切面类@Aspect
4)开启基于注解的AOP功能
基于XML的AOP
1)对切面类的方法进行配置
2)将切面类和业务逻辑组件都加入到容器
3)告诉SpringIOC容器哪个类是切面类@Aspect
在其他类中本类事务,才会分大小方法的事务特性。
/*** 结果:没有任何事务特性;* * 本类调用本类事务;* 1、现象:大方法是默认REQUIRED* 小方法两个都设置了REQUIRES_NEW,但是没用* 2、现象:大方法是默认REQUIRES_NEW* 小方法两个都设置了REQUIRES_NEW,但是没用* 3、现象:大方法是默认REQUIRES_NEW* 小方法两个都是REQUIRED,还是没用* * 为什么?怎么调都调整不了一个回滚一个不回滚?* MulService{* BookService bs = 代理;* mulTx(){* //代理.方法()* bs.checkout();* bs.updatePrice();* }* }* * * //两个小事务怎么设置都不行,都是一起滚;* BookService{* //* hahah(){* //自己方法;把这个方法cv过来* checkout();* //cv进haha* updatePrice();* }* }* * {* hahah(){* int price = bookDao.getPrice(isbn);//1、减用户余额bookDao.updateBalance(price, username);//2、减图书的库存bookDao.updateStock(isbn);bookDao.updatePrice(isbn);* }* }* 原因:* 所有切入了事务的业务逻辑组件,在ioc容器中保存的是这个组件的代理对象;* 本类直接调用本类方法,就相当于是将本类的方法的代码,cv进当前方法里面* 现象就是其实只有一个事务,就是hahah();* * 类编译;* 本类方法调用本类方法,相当于将另外一个方法的实现cv过来;*/
转载于:https://www.cnblogs.com/limingxian537423/p/7252919.html
Aop事务小结(事务管理器和自身构建)相关推荐
- 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全
基于角色的安全是从 Windows NT 的第一个版本开始在 Windows 平台上发展而来的.使用角色,操作系统可以通过检查称为 BUILTIN\Administrators 的组的安全上下文做出一 ...
- python 计时器_Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- Python上下文管理器的魔力
点击关注我哦 一篇文章带你了解Python上下文管理器的魔力 小编将为您准备一份很棒的Python上下文管理器使用指南,这将使您的代码更具可读性和可靠性,降低您的错误发生率. 资源管理器是我们在任何编 ...
- VS2010与.NET4系列 23.Visual Studio 2010 扩展管理器(和新的 VS2010 PowerComman
今天介绍VS2010中的扩展能力改进,以及一个微软发布的"PowerCommands for Visual Studio 2010"扩展. VS2010中的扩展能力 VS2010比 ...
- django 1.8 官方文档翻译: 2-5-1 管理器 (初稿)
Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质. 交流群:467338606 网站:http://python.usyiyi.cn/django/index.html ...
- django 1.8 官方文档翻译: 2-5-1 管理器
管理器 class Manager 管理器是一个接口,数据库查询操作通过它提供给django的模型.django应用的每个模型至少拥有一个 管理器. 管理器类的工作方式在 执行查询文档中阐述,而这篇文 ...
- oracle 逐层合计,Oracle数据仓库的分层管理器解决方案
Oracle数据仓库的分层管理器解决方案以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要 本文描述分层管理器的原理 ...
- Python学习之路33-上下文管理器和else块
<流畅的Python>笔记. 本篇主要讨论Python用户常忽略掉的一些流程控制特性,包括上下文管理器和else块.内容包括else与非if关键字的搭配:Python中的上下文管理器,如何 ...
- Spring AOP事务实现原理之事务管理器TransactionManager
流程图 该图介绍了事务的传播行为 该流通图展示的是TransactionManager具体如何结合事务的传播行为进行事务获取 该流通图展示的是TransactionManager具体如何结合事务的传播 ...
最新文章
- 京东网络开放之路——自研交换机探索与实践
- 分享Kali Linux 2016.2第46周镜像文件
- mysql 服务器 kill进程_mysql查询结束进程kill
- 快播王欣明天就出狱了,他能借钱东山再起吗?
- Linux入门基础(1)
- WdatePicker 设置日期第一个比第二个的日期小
- HttpClient 4 API –获取状态代码-getStatusLine()。getStatusCode()示例
- 硬核评测:企业上云的极速存储挑战,华为云全新极速IO云硬盘性能评测
- 智力问答选择题_智力问答:智力题大全及答案
- Android开启桌面模式,Android Q自带桌面模式:支持大宽屏幕
- ubuntu里面控制器放大缩小屏幕
- 教你分割视频,用多个视频随机合并,添加音频
- Vue img图片加载不出来或加载错误显示默认图片
- 一次苦中作乐的追码过程(上)
- c语言猜拳游戏石头剪刀布,模拟剪刀石头布猜拳游戏
- 「6月雅礼集训 2017 Day4」暴力大神hxx
- @RequestBody是干嘛的,作用是什么?
- MYSQL 1366报错如何解决
- Swing 入门介绍
- Realplayer11 v6.0.14.738英文官方原版