`

spring 配置 事物创建代理 BeanNameAutoProxyCreator

阅读更多

<bean id="zwAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
      <property name="interceptorNames">(事物拦截器)
      <list>
             <idref bean="zwInterceptor"/>

         </list>
      </property>
      <property name="beanNames">需要配置的bean列表
         <list>
             <idref bean="zwDao"/>

 

             ...

          </list>
      </property>
  </bean>

<bean id="zwInterceptor class="org.springframework.transaction.interceptor.TransactionInterceptor">

         <property name="transactionManager">
            <ref bean="transactionManager"/>(自己配置)
        </property>
        <property name="transactionAttributeSource">(管理TransactionAttribute)
            <ref local="listenerNameMatchBase"/>(设定事务的策略)
        </property>

</bean>

   
 <bean id="listenerNameMatchBase"
        class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
         <property name="properties">
            <props>
             <prop key="doAfter">PROPAGATION_REQUIRED</prop>(根据方法名字监控key方法这里试doafter,也可以是insert*等)
            </props>
         </property>
  </bean>

 

备注

事务传播行为种类

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,

它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:

事务传播行为类型

 

事务传播行为类型

说明

PROPAGATION_REQUIRED

如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS

支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY

使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW

新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED

以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER

以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED

如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。

分享到:
评论

相关推荐

    spring 事务代理配置

    它基于AOP(面向切面编程)原则,在运行时动态创建代理对象,这些代理对象封装了事务管理行为。当调用代理方法时,代理会拦截调用并自动开启、提交或回滚事务,从而实现事务的管理。 #### 配置步骤 1. **定义数据...

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

    `DefaultAdvisorAutoProxyCreator`是Spring AOP中用于自动创建代理的组件,它会寻找所有`Advisor`(包括事务增强`Advisor`),并将它们应用到相关的bean上。这样,我们可以通过定义`Pointcut`来决定哪些方法需要...

    Spring实现自动代理Demo

    当Spring容器启动并初始化`BeanNameAutoProxyCreator`时,它会扫描配置的bean名字列表,找到匹配的bean并创建代理。代理对象在执行方法时,会首先调用拦截器,然后才调用实际的目标方法。 三、使用示例 在`spring...

    AOP usage -- BeanNameAutoProxyCreator usage

    在Spring配置文件中,我们需要声明一个`BeanNameAutoProxyCreator` bean,并设置其属性。主要的属性有: 1. `proxyTargetClass`: 是否使用CGLIB代理,默认为false,如果设为true,将使用CGLIB生成子类代理;若设为...

    spring代理详解.txt

    在Spring框架中,代理机制主要用于实现AOP(面向切面编程)功能,通过动态创建代理对象来拦截目标方法调用,从而实现如事务管理、日志记录、性能监控等横切关注点。 ### 1. ProxyFactoryBean `ProxyFactoryBean`是...

    spring1.2申明式事务.txt

    在Spring配置文件中,首先需要定义一个事务管理器,该管理器负责与特定的数据访问技术(如Hibernate、JDBC等)进行交互,处理事务的开启、提交或回滚等操作。例如,如果使用Hibernate作为持久层框架,则可以定义如下...

    Spring + Hibernate + Struts 事务配置小例子(带提示框等小技巧)

    前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...

    spring配置文件

    ### Spring配置文件中的AOP应用解析 #### 一、AOP基本概念与应用场景 面向切面编程(Aspect Oriented Programming, AOP)是Spring框架的一个重要特性,它提供了一种在程序运行期间横向插入功能(比如日志记录、...

    事物管理配置文件.txt

    描述:本篇详细解析了在SSH(Struts+Spring+Hibernate)框架整合过程中,Spring配置事务管理的具体实现方法。通过深入分析XML配置文件中的bean定义,我们将逐步理解如何通过Spring来管理和控制事务,以及如何集成...

    Spring在Transaction事务传播行为种类

    -- 此处可增加其他需要自动创建事务代理的bean --&gt; &lt;!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器 --&gt; &lt;value&gt;transactionInterceptor ``` #### 五、总结 通过本文的介绍,我们可以看到...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言...

    Spring.3.x企业应用开发实战(完整版).part2

    6.5 自动创建代理 6.5.1 实现类介绍 6.5.2 BeanNameAutoProxyCreator 6.5.3 DefaultAdvisorAutoProxyCreator 6.6 小结 第7章 基于@AspectJ和Schema的AOP 7.1 Spring对AOP的支持 7.2 JDK 5.0注解知识快速进阶 7.2.1 ...

    Spring声明式事务和@Aspect的拦截顺序问题的解决

    1. 通过 Bean 的名称自动创建代理,实现类 BeanNameAutoProxyCreator 2. 根据 Bean 中的 AspectJ 注解自动创建代理,实现类 AnnotationAwareAspectJAutoProxyCreator 3. 根据 Advisor 的匹配机制自动创建代理,实现...

    Spring3.x企业应用开发实战(完整版) part1

    6.5 自动创建代理 6.5.1 实现类介绍 6.5.2 BeanNameAutoProxyCreator 6.5.3 DefaultAdvisorAutoProxyCreator 6.6 小结 第7章 基于@AspectJ和Schema的AOP 7.1 Spring对AOP的支持 7.2 JDK 5.0注解知识快速进阶 7.2.1 ...

    Spring+Ibatis 访问多个数据源

    在企业级应用开发中,有时候...为了实现事务管理,我们可以使用Spring的`DataSourceTransactionManager`,为每个数据源配置一个事务管理器,并通过AOP代理(例如`BeanNameAutoProxyCreator`)指定事务拦截器: ```xml ...

    spring学习笔记

    Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................

Global site tag (gtag.js) - Google Analytics