`

spring中使用声明式事物的配置

阅读更多
    声明意味着我们告知spring某个bean的某个方法需要事物管理,之后spring就会保证此方法被调用时,会有对应的事物贯穿其中。次实现方式完全依赖AOP对方法进行拦截。
    声明式事务的最大好处在于我们无需修改既有代码。方法实现过程中,我们压根无需为其添加事务管理支持。
    xml配置
   
       //..省略
       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref local="dataSource">
          </property>
       </bean>
        
       <bean id="accountManagerTarget" class="xx路径">
           <property name="xxDao">
               <ref local="xx"/>
           </property>
           <property name="xxDao">
               <ref local="xx"/>
           </property>
       </bean>
   
       <bean id="accpuntManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
           <property name="transactionManager">
               <ref local="transactionManager"/>
           </property> 
           <property name="target">
               <ref local="accountManagerTarget"/>
           </property> 
           <property name="transactionAttributes">
               <props>
                   <prop key="insert*">
                      PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
                   </prop>
                   <prop key="transfer*">
                      PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
                   </prop>
                   <prop key="deposit*">
                      PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED
                   </prop>
               </props>
           </property> 
       </bean>

   //..省略其他配置
    

    我们定义了一个transactionmManager bean,实现位于DataSourceTransactionManager中。这个事务管理器需要通过dataSource bean对JDBC事务进行控制。我们的accountManager bean 实际上是accountManagerTarget的代理.代理负责对transactionmManager bean的调动,当transactionAttributes中定义的方法调用时,相应的代理通过transactionmManager  创建事务,然后调用对应的目标方法。如果目标方法抛出了一个异常,代理会驱动transaction对相应事务进行回滚。如果目标方法成功,则提交事务。
0
0
分享到:
评论

相关推荐

    spring的5中事物配置 介绍spring的5中事物配置

    - Spring 3.0引入了基于Java的配置,事务管理可以通过`@EnableTransactionManagement`注解开启,然后在配置类中使用`@Transactional`注解进行方法级别的事务配置,或者使用`@Configuration`和`@Bean`定义事务管理器...

    spring中事物配置

    在XML配置中,我们可以使用`&lt;tx:advice&gt;`元素来定义一个事务通知: ```xml *" propagation="REQUIRED"/&gt; ``` 这里,`*`表示所有方法都将在`REQUIRED`事务传播策略下运行,即如果当前没有事务,则新建一...

    Spring中的声明式事物

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者通过配置或注解方式来声明事务的边界,而无需在业务代码中显式地进行事务控制。这种方式极大地提高了代码的可读性和可维护性,使得事务管理更加集中和...

    Spring声明式事务配置模板2.x

    在声明式事务配置中,我们需要在`&lt;beans&gt;`标签内添加`&lt;tx:annotation-driven&gt;`和`&lt;bean&gt;`标签来实现事务管理。 1. **事务管理器配置**:在`&lt;bean&gt;`标签中,我们通常会定义一个`PlatformTransactionManager`的实现类...

    spring.net 声明式事物管理小示例

    在这个声明式事务管理的小示例中,我们将探讨如何使用 Spring.NET 来实现事务的自动化处理。 1. **什么是声明式事务管理?** 声明式事务管理允许开发者通过配置或注解来定义事务的边界,而不是在代码中显式地调用 ...

    Spring源代码解析(六):Spring声明式事务处理.doc

    在 Spring 中,声明式事务处理可以通过配置 TransactionProxyFactoryBean 来实现。TransactionProxyFactoryBean 是一个 FactoryBean,它可以创建一个代理对象,该代理对象可以拦截业务方法的调用,并对事务进行管理...

    spring编程式事物

    编程式事务管理是指在代码中显式地控制事务的开始、提交、回滚等操作,而声明式事务管理则是通过配置或注解来定义事务边界,更加简洁且易于维护。 标题"spring编程式事物"主要关注的是编程式事务管理。这种方式允许...

    Spring事物配置的五种模式

    这种方式通过在XML配置文件中使用`&lt;tx:advice&gt;`和`&lt;tx:method&gt;`元素来配置事务属性。这种方式适用于那些需要细粒度控制事务的场景。 **配置示例**: ```xml &lt;bean id="transactionManager" class="org.spring...

    Spring(IOC,APD,声明式事物的例子)

    让我们深入探讨这些概念以及如何在Spring中实现声明式事务管理。 **1. Inversion of Control (IoC)** IoC,也称为依赖注入(Dependency Injection),是一种设计模式,它将对象的创建和管理权交给了框架,而不是由...

    Spring Boot多数据源(支持Spring声明式事务切换和回滚).pdf

    在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论多数据源回滚策略。以下是对这些知识点的详细说明: 1. **动态数据源切换**: - 通过AspectJ实现数据源的动态切换,可以设置在...

    第十四章 Spring4 切面事物与事物通知与传播行为

    编程式事务管理需要在代码中显式地管理事务开始、提交和回滚,而声明式事务管理则通过在配置或注解中声明事务规则,更加灵活且易于维护。例如,使用@Transactional注解可以轻松地为方法添加事务边界。 三、事务通知...

    spring事物和rabbitMQ的例子

    Spring提供了一种声明式事务管理方式,使得开发者可以在不直接编写事务控制代码的情况下,通过配置来管理事务的边界。在"spring的2个数据源的配置"中,这意味着系统可能需要处理来自两个不同数据源的数据,例如一个...

    Spring中的@Transactional事物回滚实例源码

    在`first_maven_project`中,我们可以通过查看源码,了解如何在实际应用中使用这个注解来处理事务,以及遇到异常时如何触发事务回滚。这有助于理解Spring事务管理机制的运作方式,从而提升开发和维护效率。

    在SSH中使用事物包括SSH的搭建和配置;事物的配置;注释详细

    在配置文件中,注释应详细说明每个元素的作用,例如在Spring的配置文件中,`&lt;tx:annotation-driven&gt;`的`transaction-manager`属性指定哪个事务管理器处理事务,`proxy-target-class="true"`表示使用CGLIB代理而不是...

    spring事物管理配置的5种方式

    在Spring的XML配置文件中,可以在`&lt;tx:annotation-driven&gt;`元素下声明事务管理器,使得带有`@Transactional`注解的方法能够被事务管理。 ```xml (* com.bluesky.spring.service.*.*(..))"/&gt; *" ...

    spring 事务(6中配置完全降解)

    Spring 事务管理也可以与AOP结合,通过`aop:config`标签定义切点和通知,来实现事务的声明式管理。这种方式更加灵活,可以实现更细粒度的事务控制。 在实际开发中,根据项目需求和团队习惯,可以选择适合的事务...

    spring-tx事物源码

    Spring的事务管理机制包括编程式事务管理和声明式事务管理,这两种方式都基于`spring-tx`模块。在这个源码中,我们可以深入理解Spring如何处理事务的生命周期、回滚规则以及与各种数据源的集成。 首先,`spring-tx`...

    spring-控制事物回滚

    总结起来,"spring-控制事物回滚"涵盖的知识点包括Spring的声明式事务管理、事务的回滚规则、传播行为、隔离级别以及源码分析和相关工具的使用。理解和掌握这些内容,对于提升Java企业级应用开发的能力至关重要。

    spring中事物管理1

    其中,声明式事务管理是通过在配置文件或注解中声明事务规则,使得事务管理更加简洁和易维护。 3.1 平台事务管理器(PlatformTransactionManager) `PlatformTransactionManager` 是 Spring 提供的核心事务管理...

Global site tag (gtag.js) - Google Analytics