`
隐形的翅膀
  • 浏览: 486714 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Transaction 四: 使用基于注解的AOP的事务管理

阅读更多
使用基于注解的AOP的事务管理

@Transactional

1. 例子
Transactional(readOnly = true, propagation=Propagation.REQUIRED)  

@Transactional(propagation=Propagation.REQUIRED)
public TradeData placeTrade(TradeData trade) throws Exception {...}


@Transactional(propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
public TradeData placeTrade(TradeData trade) throws Exception {...}



2. xml 配置

<beans>

<tx:annotation-driven transaction-manager="transactionManager"/>
//使用@Transactional 注解创建恰当的事务管理切面

<aop:aspectj-autoproxy/>// 通知匹配的bean

<beans>




3. <tx:annotation-driven>标签


<tx:annotation-driven>标签是使用注解驱动的事务管理支持的核心, 所有属性如下



transactionManager:  指定到现有的PlatformTransactionManger bean 的引用, 通知会使用该引用

mode: 指定spring事务管理框架创建通知bean的方式,可用的有proxy  和 aspectj, 前者是默认值, 表示通知对象是个jdk代理,后者表示spring aop会使用ajpectj创建代理

order: 指定创建切面的顺序, 只要目标对象有多个通知就可以使用该属性

proxy-target-class: 该属性如果为true , 就表示你想要代理目标类而不是bean 所实现的所有接口



4. @Transactional           

所有属性

propagation: 指定事务定义中使用的传播

isolation: 指定事务的隔离级别

timeout: 超时时间

readonly : 如果为true, 事务标致为只读

noRollbackFor: 目标方法可抛出的异常所构成的数组,但通知仍会提交事务

rollbackFor: 异常所构成的数组,如果目标方法抛出了这些异常,通知就会回滚


5. 缺点

  a. 不的不为所有需要事务的方法加上@Transactional

    b. 把@Transactional 加在整个类上, 不需要事务的方法也运行在事务中

分享到:
评论

相关推荐

    实验2 Spring AOP源码

    2、掌握基于XML/注解方式的AOP编程; 二:实验内容 1、 定义交易接口: public interface Transaction{ public void income(float amount);//收入 public void expenditure(float amount);//支出 } 定义银行账号...

    高级开发spring面试题和答案.pdf

    AOP实现方式:aop注解或者xml配置;后来工具jar包aspects; aop的属性 事务 事务编码方式: 事务注意事项; 为什么同一个类A调用b方法事务,A方法一定要有事务(编码式的不用) @transaction多个数据源事务怎么指定...

    JavaSpring的商城项目前台+后台+api

    JavaSpring的商城项目 Java Spring是一个开源的Java...事务管理:Spring提供了一致的事务管理接口,可以在JTA(Java Transaction API)或非托管环境中使用,简化了事务管理代码。 模型-视图-控制器(MVC):Spring的W

    Spring中文帮助文档

    9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一...

    Spring API

    9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一种...

    Spring 2.0 开发参考手册

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring JDBC包结构...

    spring chm文档

    9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. Spring ...

    Spring3中配置DBCP,C3P0,Proxool,Bonecp数据源

    -- 采用单数据源事务控制方式,通过注解来定义事务--&gt; class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet....

    SpringMVC+Hibernate全注解整合

    &lt;aop:advisor advice-ref="txAdvice" pointcut-ref="bussinessService" /&gt; &lt;/aop:config&gt; &lt;!-- 配置那个类那个方法用到事务处理 --&gt; &lt;tx:advice id="txAdvice" transaction-manager="transactionManager"&gt; ...

    SpringMVC-SSH全注解

    &lt;aop:advisor advice-ref="txAdvice" pointcut-ref="bussinessService" /&gt; &lt;/aop:config&gt; &lt;!-- 配置那个类那个方法用到事务处理 --&gt; &lt;tx:advice id="txAdvice" transaction-manager="transactionManager"&gt; ...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    spring3.2+strut2+hibernate4

    -- JTA环境的事务配置 &lt;bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager or WebLogicJtaTransactionManager"/&gt; --&gt; &lt;!-- 使用annotation定义事务 --&gt; &lt;tx:...

    Transactional所需要的jar包:

    1、aopalliance.jar 这个包是AOP联盟的API包,里面包含了针对面向切面的接口...2、aspectjrt.jar 处理事务和AOP所需的包 3、aspectjweaver.jar 处理事务和AOP所需的包 4、cglib-nodep.jar spring中自动代理所需jar包

    iBase4J分布式系统-其他

    Transaction注解事务。3、MVC:基于spring mvc注解,Rest风格Controller。Exception统一管理。4、调度:Spring+quartz, 可以查询、修改周期、暂停、删除、新增、立即执行,查询执行记录等。5、基于session的国际化...

    客户关系管理系统框架搭建(二)

    --4 创建事务管理器 aop切面--&gt; &lt;bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt; &lt;!--5 配置处理事务的注解--&gt; &lt;tx:annotation-...

    Spring demo 2017-04-18

    spring demo,包含了bean的自动装配,aop以及泛型依赖注入的实现,jdbc和jdbc的xml配置以及注解两种实现方式。每个功能的程序入口为各自包里面的main方法

    Java学习笔记-个人整理的

    {5.2.1}将浮点数四舍五入到指定精度}{98}{subsection.5.2.1} {6}Exception}{99}{chapter.6} {6.1}\ttfamily try-catch}{99}{section.6.1} {6.2}\ttfamily finally}{100}{section.6.2} {6.3}\ttfamily throws}{...

Global site tag (gtag.js) - Google Analytics