spring事务 整理

spring的事务本质上来说还是spring的aop

不过,在aop中事务类,也就是切面类是我们提供的,但在spring事务中,事务是由spring提供的。

spring针对不同的数据库开发框架,启用了不同的事务

如jdbc中由datasource管理connection 在hibernate由sessionfactory 管理session(相当于对connection的封装)

因此采用了不同的事务类(切面)完成

xml配置示例:

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

配置中isolation机制 propagation 传播机制

<!--
        通知 1、告诉spring容器,采用什么样的方法处理事务 2、告诉spring容器,目标方法应该采用什么样的事务处理策略
    -->
    <tx:advice id="tx" transaction-manager="transactionManager">
        <tx:attributes>
            <!--
                name规定方法 isolation 默认值为DEFAULT propagation 传播机制 REQUIRED
            -->
            <tx:method name="save*" read-only="false" />
        </tx:attributes>
    </tx:advice>

isolation

<!--

通知 1、告诉spring容器,采用什么样的方法处理事务 2、告诉spring容器,目标方法应该采用什么样的事务处理策略

-->

<tx:advice id="tx" transaction-manager="transactionManager">

<tx:attributes>

<!--

name规定方法 isolation 默认值为DEFAULT propagation 传播机制 REQUIRED

-->

<tx:method name="save*" read-only="false" />

</tx:attributes>

</tx:advice>

propagation

注解配置

详情参考 spring文档:http://download.csdn.net/detail/jinhao505/7901177

时间: 2024-11-05 14:52:28

spring事务 整理的相关文章

Spring 事务相关点整理

Spring和事务的关系 关系型数据库.某些消息队列等产品或中间件称为事务性资源,因为它们本身支持事务,也能够处理事务. Spring很显然不是事务性资源,但是它可以管理事务性资源,所以Spring和事务之间是管理关系. 就像起码很多领导虽然不会写代码,但是他却管理着一大批会写代码的码农. Spring事务三要素 数据源:表示具体的事务性资源,是事务的真正处理者,如MySQL等. 事务管理器:像一个大管家,从整体上管理事务的处理过程,如打开.提交.回滚等. 事务应用和属性配置:像一个标识符,表明

2015第24周二Spring事务2

今天继续深入学习SPring事务,发现网上很多文章都是很相似的转载没多少价值,就觉得更有必要把这个主题深入下去,先是摘录那些对自己有用的观点,后期再结合源码进行全面的整理. Spring提供了许多内置事务管理器实现,常用的有以下几种: DataSourceTransactionManager:位于org.springframework.jdbc.datasource包中,数据源事务管理器,提供对单个javax.sql.DataSource事务管理,用于Spring JDBC抽象框架.iBATIS

Spring 事务管理高级应用难点剖析--转

第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN&en=utf&hpp=20&dws=cndw&lo=zh 概述 Spring 最成功,最吸引人的地方莫过于轻量级的声明式事务管理,仅此一点,它就宣告了重量级 EJB 容器的覆灭.Spring 声明式事务管理将开发者从繁复的事务管理代码中解脱出来,专注于业务逻辑的开发上,这是一件

spring事务管理及相关知识

最近在项目中遇到了spring事务的注解及相关知识,突然间感觉自己对于这部分知识只停留在表面的理解层次上,于是乎花些时间上网搜索了一些文章,以及对于源码的解读,整理如下: 一.既然谈到事务,那就先搞清到底什么是事务,或者说,Spring事务管理中的事务到底是指什么? 1.事务(Transaction),通常是指数据库的事务,在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),例如insert .update.delete等,事务是恢复和并发控制的基本单位. 2.事务

spring 事务管理详解 学习心得

今天,我终于登上了你的诺曼底,spring事务. 在此之前,一谈起spring我就没底,虽然用的很顺手,但是其中的AOP和事务一直未理解和掌握,数次尝试突破都未成功,之前看过很多网上的相关文章和书籍,要么基于的版本不同,有的基于spring2有的基于spring3:要么切入点不同,有的讲的太低级,我都懂,有的讲的太庞杂,我晕了...... 从这周一开始,我决定在试一下.计划每天的上午专门学习,横扫各大网站,收集文章,然后对其分类,整理记笔记,到周二坚持一个一个的看,规整,理解,熟记,本子下写下了

框架 day37 Spring事务管理,整合web,SSH整合,SSH整合注解

1     事务管理 1.1   回顾事务     事务:一组业务操作,要么全部成功,要么全部不成功.     事务特性:ACID 原子性:整体 一致性:数据(完整) 隔离性:并发(多个事务) 持久性:结果     隔离问题:脏读.不可重复读.幻读(虚读)     隔离级别:4个 readuncommitted 读未提交,存在3个问题. readcommitted 读已提交,解决:脏读:存在2个. repeatableread 可重复读,解决:脏读.不可重复读:存在1个 serializ

实现spring事务的四种方式

用一个银行账号转钱的案例来说明spring事务的实现.在转钱过程中,一个账号钱增加,另一个减少,那么当有异常产生时,就会出现钱转丢了的现象一个减少了,而另一个没有增加,这个时候就需要把这两个行为绑定到一起,要么同时发生,要么都不发生这就用到了事务,事务就是指在逻辑上的一组操作,这组操作要么全部成功,要么全部失败 实现spring事务的四种方式分别为:(1)编程式事务管理:需要手动编写代码,在实际开发中很少使用(2)声明式事务管理:(2.1)基于TransactionProxyFactoryBea

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

spring事务没回滚

最近遇见一个问题,用spring管理实务,在service层处理数据,保存数据时出现异常,但没有回滚,检查了一下,发现是因为我用try catch将异常进行捕获了,没有抛出导致的:默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚. 处理发法一:捕获异常后,新生成runtimeexcetpion: try { userDao.save(user); userDao.update(user); } catch (Exception e) { logger.info("