<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类 似的操作。 |
相关推荐
它基于AOP(面向切面编程)原则,在运行时动态创建代理对象,这些代理对象封装了事务管理行为。当调用代理方法时,代理会拦截调用并自动开启、提交或回滚事务,从而实现事务的管理。 #### 配置步骤 1. **定义数据...
`DefaultAdvisorAutoProxyCreator`是Spring AOP中用于自动创建代理的组件,它会寻找所有`Advisor`(包括事务增强`Advisor`),并将它们应用到相关的bean上。这样,我们可以通过定义`Pointcut`来决定哪些方法需要...
当Spring容器启动并初始化`BeanNameAutoProxyCreator`时,它会扫描配置的bean名字列表,找到匹配的bean并创建代理。代理对象在执行方法时,会首先调用拦截器,然后才调用实际的目标方法。 三、使用示例 在`spring...
在Spring配置文件中,我们需要声明一个`BeanNameAutoProxyCreator` bean,并设置其属性。主要的属性有: 1. `proxyTargetClass`: 是否使用CGLIB代理,默认为false,如果设为true,将使用CGLIB生成子类代理;若设为...
在Spring框架中,代理机制主要用于实现AOP(面向切面编程)功能,通过动态创建代理对象来拦截目标方法调用,从而实现如事务管理、日志记录、性能监控等横切关注点。 ### 1. ProxyFactoryBean `ProxyFactoryBean`是...
在Spring配置文件中,首先需要定义一个事务管理器,该管理器负责与特定的数据访问技术(如Hibernate、JDBC等)进行交互,处理事务的开启、提交或回滚等操作。例如,如果使用Hibernate作为持久层框架,则可以定义如下...
前几天搞 Spring + Hibernate + Struts 事务配置 ,网上找了好多资料,不过好无语,大多都是 Ctrl + V,浪费俺的宝贵时间 现在我总结配出一套,给大家参考参考,可能有不足,请大家多多交流。 附:内有弹出...
### Spring配置文件中的AOP应用解析 #### 一、AOP基本概念与应用场景 面向切面编程(Aspect Oriented Programming, AOP)是Spring框架的一个重要特性,它提供了一种在程序运行期间横向插入功能(比如日志记录、...
描述:本篇详细解析了在SSH(Struts+Spring+Hibernate)框架整合过程中,Spring配置事务管理的具体实现方法。通过深入分析XML配置文件中的bean定义,我们将逐步理解如何通过Spring来管理和控制事务,以及如何集成...
-- 此处可增加其他需要自动创建事务代理的bean --> <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器 --> <value>transactionInterceptor ``` #### 五、总结 通过本文的介绍,我们可以看到...
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. 动态语言...
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 ...
1. 通过 Bean 的名称自动创建代理,实现类 BeanNameAutoProxyCreator 2. 根据 Bean 中的 AspectJ 注解自动创建代理,实现类 AnnotationAwareAspectJAutoProxyCreator 3. 根据 Advisor 的匹配机制自动创建代理,实现...
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的`DataSourceTransactionManager`,为每个数据源配置一个事务管理器,并通过AOP代理(例如`BeanNameAutoProxyCreator`)指定事务拦截器: ```xml ...
Spring的Ioc Spring的AOP , AspectJ Spring的事务管理 , 三大框架的整合 目录 1.1 Spring 框架学习路线:..........................................................................................................