`

Spring2.0事务配置及事务理解

阅读更多
代码:
<aop:config proxy-target-class="true">  
  1.     <aop:advisor pointcut="execution(* com.company..*Manager.*(..))"  
  2.         advice-ref="txAdvice" />  
  3. </aop:config>  
  4.   
  5. <tx:advice id="txAdvice">  
  6.     <tx:attributes>  
  7.         <tx:method name="save*" isolation="DEFAULT/READ_COMMITTED/READ_UNCOMMITTED/REPEATABLE_READ/SERIALIZABLE]"/>  
  8.         <tx:method name="update*" <tx:method name="update*" propagation="MANDATORY/NESTED/NEVER/NOT_SUPPORTED/REQUIRED/REQUIRES_NEW/SUPPORTS">/>  
  9.         <tx:method name="delete*" />  
  10.         <tx:method name="find*" read-only="true" />  
  11.     </tx:attributes>  
  12. </tx:advice>  

 

isolation设定事务的隔离级别,事务管理器根据它来控制另外一个事务可以看到本事务内的哪些数据。
定义的5个不同的事务隔离级别:
1.     DEFAULT:默认的隔离级别,使用数据库默认的事务隔离级别
2.     READ_COMMITTED:保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交 的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
3.     READ_UNCOMMITTED:这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
4.     REPEATABLE_READ:这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免不可重复读。
5.     SERIALIZABLE:这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。

 

propagation定义了7个事务传播行为


1.    REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
2.    SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。但是对于事务同步的事务管理器,SUPPORTS与不使用事务有少许不同。
3.    REQUIRES_NEW 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
4.    NOT_SUPPORTED 总是非事务地执行,并挂起任何存在的事务。
5.    NEVER 总是非事务地执行,如果存在一个活动事务,则抛出异常
6.    NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务, 则按7.TransactionDefinition.PROPAGATION_REQUIRED 属性执行。
嵌套事务一个非常重要的概念就是内层事务依赖于外层事务。外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚。

REQUIRED应该是我们首先的事务传播行为。它能够满足我们大多数的事务需求。

分享到:
评论

相关推荐

    Spring2.0 事务处理

    在IT行业中,Spring框架是...Spring 2.0引入了基于AOP(面向切面编程)的声明式事务管理,使得事务配置更加直观。 在`applicationContext.xml`配置文件中,我们可以设置事务管理器和声明事务的行为。例如: ```xml ...

    Spring2.0的配置

    本文将详细介绍Spring 2.0的声明式事务配置以及如何简化这一过程。 首先,Spring提供了多种事务管理器,以适应不同的持久层技术和环境。对于单一资源,可以选择如DataSourceTransactionManager(适用于JDBC)、...

    spring2.0中文手册及使用指南 chm

    综上所述,Spring 2.0中文手册及使用指南是Java开发者不可多得的学习资料,它全面涵盖了Spring框架的关键特性,结合实际例子和深入解析,有助于开发者熟练掌握Spring 2.0并应用于实际项目。无论是初学者还是经验丰富...

    Spring2.0宝典源代码

    这份源代码集合是配合书籍《Spring2.0宝典》使用的,读者可以通过实际操作代码来理解和掌握Spring 2.0的核心特性和应用场景。光盘中包含的“codes”文件夹,极有可能包含了书中各个章节的示例代码,覆盖了Spring 2.0...

    SPRING2.0中文文档

    在Spring 2.0中,除了XML配置之外,还引入了基于注解的配置,使得代码更加简洁且易于维护。 三、AOP Spring的AOP模块提供了面向切面编程的能力,可以用于实现如日志记录、事务管理等跨切面关注点。Spring 2.0的AOP...

    Spring2.0中文教程

    Spring 2.0是Spring框架的一个重要版本,它在Java企业级应用开发中扮演着核心角色。本教程将深入探讨...文档`spring2.0-reference_final_zh_cn.chm`将详细阐述这些概念和技术,帮助你成为一名熟练的Spring开发者。

    详尽的Spring2.0学习提纲

    2. 事务管理:讲解Spring的事务传播行为,配置事务管理器,以及基于注解的事务控制。 六、Spring整合其他技术 1. Spring与MyBatis集成:了解如何将Spring与MyBatis结合,实现DAO层的灵活操作。 2. Spring与...

    spring2.0 中文教程

    通过阅读《Spring 2.0中文教程》中的内容,开发者可以深入理解这些概念,并学会如何在实际项目中运用Spring框架。这本书将帮助读者掌握Spring的核心功能,提高开发效率,打造更加健壮的企业级应用。

    spring2.0 jar包

    2. **AOP(Aspect-Oriented Programming,面向切面编程)增强**:Spring 2.0增强了对AOP的支持,允许开发者定义和实现切面,从而更好地分离关注点,比如事务管理、日志记录等,可以独立于业务逻辑进行处理。...

    Spring 2.0 源代码

    本文将深入探讨Spring 2.0源代码中的关键知识点,帮助开发者理解其内部机制。 1. **依赖注入(Dependency Injection, DI)**:Spring 2.0进一步完善了依赖注入机制,使得对象间的依赖关系更加明确,降低了代码耦合度...

    spring2.0技术手册_源代码(全十章)

    同时,还可以了解基于XML的事务配置和基于注解的事务配置的区别。 第四,Spring 2.0在数据访问层也有所提升,如JDBC抽象层的增强,使得数据库操作更加简洁和安全。源码中会展示如何使用`JdbcTemplate`和`...

    SPRING2.0开发详解

    ### SPRING2.0开发详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。它最初由Rod Johnson在2004年创建,并随着时间的发展不断壮大和完善。Spring 2.0版本是Spring...

    spring2.0学习源码

    《Spring 2.0 学习源码》是开发者们深入理解Spring框架核心机制的重要参考资料。这个压缩包包含了Spring 2.0版本的源代码,为程序员提供了宝贵的探索与学习平台。Spring作为Java领域的主流框架,其2.0版本是一个重要...

    SPRING2.0---SPRING2.0 說明1

    在"配置SPRING2.0"的文件中,可能包含的是Spring 2.0的应用上下文配置文件,用于定义Bean、数据源、事务管理器等组件的配置。学习如何正确配置这些元素是理解和使用Spring 2.0的关键步骤。配置文件通常使用XML格式,...

    Spring2.0技术手册_林信良PDF

    《Spring2.0技术手册_林信良》是一本深入探讨Spring 2.0框架的权威指南,由知名IT专家林信良编写。这本书详细介绍了Spring框架的核心概念、设计原则以及实际应用,对于想要深入了解和掌握Spring 2.0的开发者来说,是...

    spring2.0技术手册.pdf

    4. **更好的 XML 配置支持**:Spring 2.0 提供了更强大、更灵活的 XML 配置选项,使得配置更加简洁。 5. **支持更多的 J2EE 技术**:除了传统的 J2EE 技术之外,Spring 2.0 还增加了对 EJB 3.0、JSF 等新标准的支持...

    精通spring2.0源代码

    这本书通过对Spring 2.0版本的源代码进行深入剖析,旨在帮助读者全面理解Spring的工作机制,提升在实际开发中的应用能力。源代码的分享提供了实践和学习的宝贵资料。 Spring是一个开源的Java应用程序框架,它简化了...

    spring2.0 核心jar包

    7. **事务管理**:Spring2.0加强了事务管理功能,提供了编程式和声明式的事务管理,适用于不同类型的事务策略,如本地事务、全局事务等。 8. **国际化(Internationalization,i18n)**:Spring2.0提供了对国际化...

Global site tag (gtag.js) - Google Analytics