`

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中事物配置

    利用AOP定义声明式事物,配置事务管理器 , 配置事务的通知,配置事物代理,被注入的目标对象假如向拥有事务,必须有接口(AOP事务必须面向接口)

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

    spring.net 声明式事物管理小示例,有完整的配置,以及测试

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

    Spring声明式事务配置模板2.x;提供通用的配置,系统对一些朋友有用。

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

    1. 基于Aspectj实现动态数据源...6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅此一家),并支持多数据源事务回滚(有了它除了跨服务的事务你需要考虑分布式事务,其他都不需要,极大的减少了系统的复杂程度)

    spring jar包

    声明式事物也用到此包。 2.spring-aspects:提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。 3.spring-beans:基础jar包,它包含访问配置文件、创建和管理bean 以及进行...

    J2EE实验6.docx

    1.实现超市订单系统中供应商表的添加操作 2.配置事务管理器组件 3.在Spring配置文件中使用tx和aop命名空间下的标签配置声明式事务 4.修改上例,使用注解的方式配置声明式事务

    Spring JDBC与事务管理源代码

    1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式;...5、掌握基于XML和Annotation的声明式事务管理的使用。

    spring boot注解事务+多线程

    spring boot 纯注解方法事务控制回滚,注解+简单配置文件使用多线程demo

    spring框架搭建

    本资源是spring,mybatis,maven,mysql的一个基础搭建,下载可以直接用 datasource.xml给出了声明式事物的两种配置方式

    spring源代码解析

    对于一个Spring激活的web应用程序,可以通过使用Spring代码声明式的指定在web应用程序启动时载入应用程序上下文(WebApplicationContext),Spring的ContextLoader是提供这样性能的类,我们可以使用 ...

    Spring面试题

    正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。 BeanFactory 接口 因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对...

    SpringBoot 注解事务声明式事务的方式

    springboot使用上述注解的几种方式开启事物,可以达到和xml中声明的同样效果,但是却告别了xml,使你的代码远离配置文件。今天就扒一扒springboot中事务使用注解的玩法,感兴趣的朋友一起看看吧

    基于maven的SSH 最新全注解整合框架

    基于maven的Spring3、Struts2.3、Hibernate4.1.9 最新全注解整合框架,完美运行,包括struts配置文件的常用解释(可以实现零配置),hibernate4的新用法和声明式的AOP事物控制编写。供大家学习,对全注解的方式不明白...

    java面试题

    答:不一定,如果在配置中你也使用了fetch属性的话此时lazy就会失效。 Hibernate数据库标识与主键之间的认识? 答:标识是为了方便和简介映射文件,主键是为了让数据不会重复。 为什么每次请求都要创建一个Action...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【Spring】Spring声明式事务的五个特性 94 传播性 94 隔离级别 95 只读 96 事务超时 97 回滚规则 97 【Spring】SpringMVC请求处理流程 97 【Mybatis】MyBatis中使用#和$书写占位符有什么区别? 100 【Mybatis】...

Global site tag (gtag.js) - Google Analytics