spring使用基于注解的AOP事务管理.docx

上传人:牧羊曲112 文档编号:3062477 上传时间:2023-03-10 格式:DOCX 页数:4 大小:37.95KB
返回 下载 相关 举报
spring使用基于注解的AOP事务管理.docx_第1页
第1页 / 共4页
spring使用基于注解的AOP事务管理.docx_第2页
第2页 / 共4页
spring使用基于注解的AOP事务管理.docx_第3页
第3页 / 共4页
spring使用基于注解的AOP事务管理.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《spring使用基于注解的AOP事务管理.docx》由会员分享,可在线阅读,更多相关《spring使用基于注解的AOP事务管理.docx(4页珍藏版)》请在三一办公上搜索。

1、spring使用基于注解的AOP事务管理spring使用基于注解的AOP事务管理 16.6 AOP事务管理 AOP事务管理利用了Spring AOP的基础设施,在大多数情况下,Spring AOP会创建一个JDK代理以拦截方法调用。你可以使用装载时编织以在装载期编织切面,这样就不需要代理了。你有两种方式来配置Spring AOP事务管理,基于注解的配置以及XML配置。 16.6.1 使用基于注解的AOP事务管理 你可以借助于AOP的自动代理,通过注解将事务性行为引入到现有的bean中。让我们以代码清单16-21开始吧,它展示了类DeclarativeTxBankService。 代码清单16-

2、21 DeclarativeTxBankService实现 请注意Transactional属性,为了让Spring的事务管理基础设施可以利用该属性创建恰当的切入点和通知,我们需要使用AOP的自动代理和注解驱动的事务支持。代码清单16-22展示了与该注解相对应的XML配置。 代码清单16-22 基于注解的事务管理的配置文件 该XML配置文件展示了标准的bankService bean声明,紧跟其后的是和标签。标签使用Transactional注解创建恰当的事务管理切面。接下来由通知匹配的bean。 1探索tx:annotation-driven标签 标签是注解驱动的事务管理支持的核心。表16-

3、3列出了标签的所有属性。 表16-3 标签的属性 属性 transactionManager mode 说明 指定到现有的PlatformTransaction Manager bean的引用,通知会使用该引用 指定Spring事务管理框架创建通知bean的方式。 可用的值有proxy和aspectj。前者是默认值, 表示通知对象是个JDK代理;后者表示 Spring AOP会使用AspectJ创建代理 指定创建的切面的顺序。只要目标对象有 多个通知就可以使用该属性 该属性如果为true就表示你想要代理目标 类而不是bean所实现的所有接口 order proxy-target-class 2

4、探索Transactional注解 凭借Transactional注解我们就可以控制通知将要创建的事务定义的方方面面。就像使用transactionAttributes属性表达式一样,你可以指定传播、隔离级别、超时以及允许和不允许的异常。表16-4列出了Transactional注解的所有属性。 表16-4 Transactional注解的属性 属性 类型 说明 指定事务定义中 使用的传播 设定事务的隔离级别 propagation org.springframework. annotaion.transaction.Propagation isolation org.springframew

5、ork. annotation. transaction.Isolation int boolean Class timeout readOnly noRollbackFor rollbackFor 指定事务的超时 如果为true,事务 就被标识为只读 目标方法可抛出的 异常所构成的数组, 但通知仍会提交事务 异常所构成的数组, 如果目标方法抛出了 这些异常,通知就会回滚事务 Class 3基于注解的事务管理小结 通过Transactional注解,我们可以轻松地为一个方法声明事务。其好处在于你可以很直观地看到哪些方法带有事务,因为方法上面有该注解修饰。其缺点是你不得不为每个需要事务的方法都加

6、上Transactional注解。如果你使用的是默认的事务属性,这就不算什么问题,但当你需要设置其他的事务属性时,这就变得很乏味了,因为你要不停的复制、粘贴。另一种方式就是用Transactional注解去修饰类。这会将事务应用到该类中的所有方法。这种方式的问题在于所有的方法,包括简单的读取方法和设置方法也都运行在事务中了,尽管根本不需要这么做。XML AOP事务管理能更好地处理这种情况。 说明 虽然说通过使用Transactional注解会使所有方法运行在事务中,但我还要再多说几句:其实准确的说法应该是如果某个类被Transactional注解所修饰,那么该类实例化的Spring bean的所有方法都是事务性的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号