Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力。
@Tranactional注解分析
- 作用域:Transactional作用于类上表示类上所有的方法使用指定的事务管理策略,作用于方法表示该方法使用指定的事务管理策略;如果方法和类同时定义了@Tranactional注解,那么方法上定义的@Tranactional的属性覆盖类上定义的@Tranactional的属性
- value: 用于匹配Spring中定义的tranactionManager的名字,默认是Spring中名称为transactionManager的事务管理器
- propagation:事务传播属性,默认是Propagation.REQUIRED
- isolation:事务隔离级别,默认是Isolation.DEFAULT,它是指数据库的默认隔离级别
- timeout:事务超时时间,默认是TransactionDefinition.TIMEOUT_DEFAULT,它是指数据库的默认的事务超时时间
- readOnly:设置该事务是否是只读事务;默认为false;
- rollbackFor:用于设定需要进行回滚的异常类数组,默认只对运行时异常RuntimeException进行回滚。
具体参考文章:
http://blog.csdn.net/blueheart20/article/details/44654007
嵌套的@Trancation参考文章:
http://www.vito16.com/2015/10/07/spring-transaction-scope-bug.html
http://stamen.iteye.com/blog/1441794
http://stamen.iteye.com/blog/1441794Spring @Trancation注解
原文:http://www.cnblogs.com/userrain/p/5447887.html