`
hain
  • 浏览: 455536 次
  • 来自: ...
社区版块
存档分类
最新评论

spring 2.0 事务

阅读更多
spring 2.0带来的aop变化和bean xml schema的变化,使得事务的处理变得更加的简单,同aop一样,事务也采用两种方式来处理,一种主要为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.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

  <!-- SessionFactory, DataSource, etc. omitted -->

  <bean id="myTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="mySessionFactory"/>
  </bean>
 
  <aop:config>
   <!-- 这定义了主要的切面,也就是那些接口可以使用事务,这里只是说执行ProductService的所有方法-->
    <aop:pointcut id="productServiceMethods" expression="execution(* product.ProductService.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods"/>
  </aop:config>
  <!--主要的事务 advice 声明事务的相关属性-->
  <tx:advice id="txAdvice" transaction-manager="myTxManager">
    <tx:attributes>
      <tx:method name="increasePrice*" propagation="REQUIRED"/>
      <tx:method name="someOtherBusinessMethod" propagation="REQUIRES_NEW"/>
      <tx:method name="*" propagation="SUPPORTS" read-only="true"/>
    </tx:attributes>
  </tx:advice>

  <bean id="myProductService" class="product.SimpleProductService">
    <property name="productDao" ref="myProductDao"/>
  </bean>

</beans>
第二种方式,使用 @Transactional 注释


@Transactional

public interface FooService {

 

    Foo getFoo(String fooName);

 

    Foo getFoo(String fooName, String barName);

 

    void insertFoo(Foo foo);

 

    void updateFoo(Foo foo);

}


xml 配置

<!-- from the file 'context.xml' -->

<?xml version="1.0" encoding="UTF-8"?>

<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.xsd

       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

 

  <!-- this is the service object that we want to make transactional -->

  <bean id="fooService" class="x.y.service.DefaultFooService"/>

 

  <!-- enable the configuration of transactional behavior based on annotations -->

  <tx:annotation-driven/>

 

  <!-- a PlatformTransactionManager is still required -->

  <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <!-- sourced from somewhere else -->

    <property name="dataSource" ref="dataSource"/>

  </bean>

 

  <!-- other <bean/> definitions here -->

 

</beans>

public class DefaultFooService implements FooService {

 

    public Foo getFoo(String fooName) {

        // do something

    }

 

    // these settings have precedence

    @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)

    public void updateFoo(Foo foo) {

        // do something

    }

}

分享到:
评论

相关推荐

    Spring2.0 事务处理

    Spring 2.0版本在事务处理方面做了许多改进,使得开发者能够更有效地管理应用程序的事务边界。这篇博客将深入探讨Spring 2.0中的事务处理机制,以及如何通过`applicationContext.xml`配置文件来设置和管理事务。 ...

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

    Spring 2.0 是一个非常重要的Java框架,它在企业级应用开发中占据了核心地位,尤其是在基于Java的轻量级应用程序上下文(IoC)和面向切面编程(AOP)方面。本手册和使用指南提供了全面的Spring 2.0相关知识,包括其...

    Spring2.0宝典源代码

    《Spring2.0宝典源代码》是一份珍贵的学习资源,由知名作者李刚编写,旨在深入解析Spring框架的2.0版本。这份源代码集合是配合书籍《Spring2.0宝典》使用的,读者可以通过实际操作代码来理解和掌握Spring 2.0的核心...

    SPRING2.0中文文档

    Spring 2.0强化了与Java EE规范的集成,包括JTA事务管理、EJB3集成以及对JavaServer Faces的支持,使得开发者可以在不牺牲Spring优点的前提下,充分利用Java EE的功能。 总结,这份中文版的Spring 2.0技术文档全面...

    Spring2.0中文教程

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

    spring2.0中文参考手册.rar

    8. **事务管理**:Spring 2.0 的事务管理功能进一步加强,支持声明式事务和编程式事务,简化了事务管理的复杂度。 9. **portlet支持**:Spring 2.0 添加了portlet模块,为portlet应用提供了一致的Spring编程模型。 ...

    spring2.0 中文教程

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,使得开发者可以将关注点分离,如日志、事务管理等,从而降低代码复杂性。AOP代理包括JDK动态代理和CGLIB代理,允许开发者定义切入点和通知...

    spring2.0 jar包

    Spring 2.0加强了AOP支持,允许开发者定义和执行横切关注点,如日志记录、事务管理等。@Aspect注解用于定义切面,@Before、@After、@Around等用于指定通知类型。此外,Spring还支持自定义注解作为切入点表达式,提高...

    详尽的Spring2.0学习提纲

    Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...

    Spring 2.0 源代码

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,允许开发者定义切面、通知(advisors)和切点(pointcuts),并将其应用于业务代码,实现如日志、事务管理等功能。切面可以是接口、类或...

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

    第三,Spring 2.0增强了对事务管理的支持,包括编程式事务管理和声明式事务管理。通过源代码,我们可以看到`PlatformTransactionManager`接口如何被实现,以及`@Transactional`注解如何用于标记事务边界。同时,还...

    SPRING2.0开发详解

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

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

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

    spring2.0技术手册.pdf

    ### Spring 2.0 技术手册核心知识点详解 #### 一、Spring 框架简介 Spring 是一个开源框架,最初由 Rod Johnson 创建。它是一个轻量级的控制反转(IoC)容器,用于简化 Java 应用程序的开发。Spring 2.0 版本...

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

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

    spring2.0学习源码

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

    spring2.0中文开发参考手册(CHM)

    Spring作为一个强大的Java企业级应用框架,它提供了诸如依赖注入、面向切面编程、事务管理、数据访问等多种功能,而Spring 2.0作为其一个重要里程碑,引入了许多创新和增强,使得框架更加成熟和易用。 首先,Spring...

    spring2.0 核心jar包

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

Global site tag (gtag.js) - Google Analytics