`
wutheringsea
  • 浏览: 263417 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring笔记7---事务集成

阅读更多

一.Spring的事务管理策略。

 1. 事务定义:TransactionDefinition接口。

 

   首先,看以下代码:

 

 

  <bean id="clinic" class="org.springframework.transaction.intercepter.TransactionProxyFactoryBean" p:transactionManager-ref="transactionManager" p:targer-ref="clinicTarget">
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-BusinessExcepRollback,timeout_120,ISOLATION_READ_COMMITED,+BusinessExcepCommit</prop>
</props>
</property>
</bean>
 

 说明:所有的业务方法(*)都要受事务保护(PROPAGATION_REQUIRED);一旦应用抛出了BusinessExcepCommit异常,则Spring收管事务必须提交;一旦应用抛出了BusinessExcepRollback异常,则事务必须回滚;事务超时时间120秒;事务采取的隔离级别是READ_COMMITTED。

(-号表示回滚,+号表示提交)

 

TransactionDefinition的事务传播策略:

 

 

 int PROPAGATION_REQUIRED=0
 int PROPAGATION_SUPPORTS=1
 int PROPAGATION_MANDATORY=2
 int PROPAGATION_REQUIRES_NEW=3
 int PROPAGATION_NOT_SUPPORTED=4
 int PROPAGATION_NEVER=5
 int PROPAGATION_NESTED=6

 

2.各种PlatformTrasactionManager实现

 

例如hibernate的TrasactionManager的配置

 

 

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>

</bean>
 

二. 使用@Transactional注解和<tx:annotation-driven/>元素

 

首先,要启用@Transactiona注解必须在配置文件中引入<tx:annotation-driven/>元素

 

1. @Transactional只是Spring提供的非标准注解。

 

2. @Transactional注解可直接应用到接口上,该接口的实现方法也能间接应用。但只有在Spring的应用中支持继承和接口实现,建议尽量将其注解应用到类上,从而兼容Java EE平台注解的语义。

 

3. 除了可启用@Transactiona注解外,还可以借用EJB3.0中引入的@TransactionAttribute注解。

 

4. <tx:advice>元素

 

 

 

<aop:config>
<aop:advisor advice-ref="txadvice" pointcut="execution(**..clinic.*(..))"/>
</aop:config>

<tx:advice>
<tx:attributes>
<tx:method name="store*" propagation="REQUIRED"/>
<tx:method name="refresh*" propagation="REQUIRES_NEW" read-only="true"/>
</tx:attributes>
</tx:advice>
   

    该元素充当了拦截器的作用,以上面代码为例,会拦截以store、refresh开头的业务方法。开发者需定义若干<tx:method/>子元素,以捕捉具体连接点和指定相应的事务属性.

    <tx:method/>属性包括:

 

 

 

name  方法名
propagation  传播策略
isolation   隔离级别
timeout   事务超时
read-only  只读事务
rollback-for   触发回滚异常
no-rollback-for   触发提交的异常
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring-framework-2.5-rc2-with-dependencies\spring-framework-2.5-rc2\spring-framework-2.5-rc2docs

    这个文档集合包括了Spring的API参考、用户指南、开发者笔记等,是学习和使用Spring 2.5 RC2的宝贵资源。 首先,让我们了解一下Spring的核心特性。2.5版本引入了一些重要的增强,如依赖注入(Dependency Injection,...

    Spring学习笔记-cqupt

    在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...

    spring-framework-5.2.3.RELEASE.rar

    7. **官方文档**:压缩包中的文档将帮助你理解和使用Spring的各个组件。这些文档通常包括API参考、用户指南和开发者笔记,是学习和解决问题的重要资源。 为了快速搭建Spring Framework,你需要做以下几步: 1. **...

    spring-analysis-master.zip

    2. ORM集成:Spring支持多种ORM框架,如Hibernate、MyBatis等,提供了统一的数据访问抽象层,使得更换持久化策略变得简单。 四、Spring事务管理 1. 编程式事务管理:通过PlatformTransactionManager接口进行事务...

    Spring学习笔记+学习源码.zip

    7. **Spring Boot**:近年来,Spring Boot简化了Spring应用的初始设置,提供了自动配置和起步依赖,使得开发更加高效。 8. **Spring Security**:这是一个强大的安全框架,提供了认证和授权功能,可以保护Web应用...

    Spring Boot核心技术-笔记-pdf版.zip

    7. **Spring Boot DevTools**:开发者工具,提供了热部署、实时刷新等功能,提高了开发效率。 8. **Web MVC**:Spring Boot默认使用Spring MVC处理HTTP请求,提供模板引擎(如Thymeleaf、Freemarker)支持,以及...

    Spring-study-master.zip

    Spring-study-master中,狂神老师会讲解如何配置数据源,使用JdbcTemplate进行数据库操作,以及如何将Spring与MyBatis集成,实现动态SQL。 事务管理是企业级应用的重要部分。Spring提供了编程式和声明式两种事务...

    spring-note spring 读书笔记

    这份"spring-note spring 读书笔记"深入探讨了Spring的核心概念以及如何与其他流行技术如JDBC、Hibernate、Struts和事务管理进行集成。 1. **Spring依赖注入(IOC)**: Spring的IOC容器是其核心,负责创建对象并...

    MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring).rar

    Spring还包含数据访问/集成(DAO)、事务管理、JMS、电子邮件、任务调度等模块,支持多种持久化策略如JDBC、Hibernate、MyBatis等。 这四个框架常常被结合使用,形成所谓的“SSH”或“SSS”组合,以实现高效、灵活...

    Spring-data-jpa 学习笔记.docx

    3. **易于集成**:可以轻松地与其他 Spring 组件集成,如事务管理和缓存策略等。 为了使用 Spring Data JPA,开发者需要遵循一定的命名规则来定义持久层接口中的方法。Spring Data JPA 会根据这些命名规则自动生成...

    官方原版spring-framework-5.0.9.RELEASE.zip

    `spring-framework-5.0.9.RELEASE-docs.zip` 文件很可能是Spring Framework的文档集合,包括API参考、用户指南和开发者笔记。这些文档对于理解和学习Spring的功能至关重要,帮助开发者快速上手并解决开发过程中遇到...

    Spring笔记.doc

    1. 轻量级:Spring 的核心容器非常小巧,不依赖于特定的服务器或者库,这使得它易于集成到现有的系统中。 2. 无植入:Spring 不强制使用特定的编程模型,可以自由地选择编程方式,比如基于接口或基于注解。 3. 框架...

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    Spring学习笔记之九--声明式事务

    在提供的压缩包文件"spring_hibernate_2"中,可能包含了Spring与Hibernate集成的示例代码,例如配置文件、实体类、DAO接口和实现、Service类等。通过研究这些代码,你可以更直观地理解如何在实际项目中应用声明式...

    spring hibernate 事务管理学习笔记(二)

    在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...

    Spring.NET学习笔记 - 刘冬.NET - 博客园

    在笔记26中,刘冬展示了如何将Spring.NET与NVelocity模板引擎集成,用于生成动态HTML或其他格式的输出,这对于构建MVC应用或生成邮件等场景非常有用。 这些笔记涵盖了Spring.NET的关键特性和应用场景,为.NET...

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入...

    Spring2.5.6学习笔记-最新

    以上是 Spring 2.5.6 学习笔记中的关键知识点,通过这些基础知识的学习,开发者可以开始构建基于 Spring 框架的应用程序。接下来,可以进一步深入学习 Spring 的高级特性,如事务管理、安全性、Web 开发等方面的知识...

    Spring5-尚硅谷框架课堂笔记.rar

    7. **Spring Boot**:Spring Boot 是 Spring 的一个子项目,用于简化 Spring 应用的初始搭建和开发过程。它通过默认配置和起步依赖,帮助开发者快速启动项目。 8. **Spring Cloud**:随着微服务架构的流行,Spring ...

    spring学习笔记(十六)-声明式事务的例子

    在本篇“spring学习笔记(十六)-声明式事务的例子”中,我们将深入探讨这一主题。 首先,声明式事务管理基于AOP(面向切面编程)实现,Spring通过代理模式在方法调用前后自动插入事务管理的代码。它主要通过两种方式...

Global site tag (gtag.js) - Google Analytics