<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 事务拦截器,激活事务管理器所必须的bean -->
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<!-- 配置事务属性 -->
<property name="transactionAttributes">
<props>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 定义事务处理代理bean,他需要两个属性,一个是指定需要代理的bean,另一个是代理bean所需的事务拦截器 -->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>tempService</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
<!-- 业务逻辑层 -->
<bean id="tempService"
class="com.cj.transaction.service.TempService" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="userDAO">
<ref bean="userDAO" />
</property>
<property name="deptDAO">
<ref bean="deptDAO" />
</property>
</bean>
<bean id="userDAO" class="com.cj.transaction.hibernate.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="deptDAO" class="com.cj.transaction.hibernate.DeptDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
如果模块过多话,可以考虑用自动创建事务代理的方式
<!-- 自动代理 -->
<bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
分享到:
相关推荐
Spring_Hibernate使用TransactionInterceptor声明式事务配置 在这篇文章中,我们将探讨使用Spring_Hibernate框架实现声明式事务配置的方法,具体来说,就是使用TransactionInterceptor来管理事务。在Spring框架中,...
本教程将深入探讨如何在Spring框架中利用`TransactionInterceptor`进行声明式事务管理,与Hibernate集成实现高效的数据库事务控制。 首先,了解事务管理是至关重要的。事务是一组数据库操作,这些操作要么全部成功...
接下来,我们将深入讨论Spring中的声明式事务管理。在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、...
根据提供的文件信息,本文将详细解析Spring 1.2中声明式事务管理的相关知识点,包括其配置方式、工作原理以及如何在实际应用中实施。 ### Spring 1.2声明式事务简介 Spring框架中的声明式事务管理是通过AOP(面向...
本文将详细介绍Spring中的三种事务配置方式:编程式事务管理、声明式事务管理和基于注解的事务管理。 1. 编程式事务管理: 编程式事务管理是通过调用Transaction API来显式地开始、提交、回滚事务。这通常通过...
1. **Spring 事务处理**:Spring 提供了声明式事务管理,允许开发者在配置文件中定义事务边界,无需在业务逻辑代码中显式控制事务开始、提交和回滚。它主要基于AOP代理来实现,通过TransactionInterceptor拦截器进行...
在Spring 2.0中,声明式事务配置通常通过ProxyFactoryBean和TransactionInterceptor来实现。以下是一个示例配置: ```xml <!-- 定义数据源 --> ${jdbc.driverClassName}"/> ${jdbc.url}"/> ${jdbc.username}"/>...
而声明式事务管理则通过配置元数据(如XML或注解)来定义事务的边界和传播行为,这种方式更为简洁且易于维护。 ### 数据库连接配置与Hibernate整合 在给定的示例中,首先展示了数据库连接的配置文件,该文件遵循...
Spring通过AOP(面向切面编程)技术实现了声明式事务管理,可以通过XML配置或注解来实现。 ##### 1. XML配置示例 ```xml <!-- 定义数据源 --> <!-- 配置数据源参数 --> <!-- 定义事务管理器 --> ...
首先,Spring事务管理有两种主要模式:编程式事务管理和声明式事务管理。编程式事务管理通过调用`PlatformTransactionManager`接口提供的方法进行显式控制,如`beginTransaction()`, `commit()`, 和`rollback()`。...
配置Spring的声明式事务管理,通常需要在Spring的配置文件中包含`<tx:annotation-driven>`元素,并指定对应的`PlatformTransactionManager`。例如: ```xml <beans xmlns="http://www.springframework.org/schema/...
Spring的事务管理机制包括编程式事务管理和声明式事务管理,这两种方式都基于`spring-tx`模块。在这个源码中,我们可以深入理解Spring如何处理事务的生命周期、回滚规则以及与各种数据源的集成。 首先,`spring-tx`...
本文将详细讨论Spring框架中的Hibernate事务管理机制,包括事务的隔离级别、事务的传播性质以及Spring的声明式事务管理。 首先,事务的隔离级别是确保多事务并发执行时数据一致性的重要手段。Spring提供了五种不同...
Spring框架作为Java领域中一个非常流行的轻量级框架,为开发者提供了多种方式来实现事务管理,其中主要分为编程式事务管理和声明式事务管理两种。这两种方式各有优势与局限性,在不同的场景下可以选择合适的事务管理...
声明式事务管理则基于AOP(面向切面编程),通过在配置或注解中声明事务边界,使得事务管理与业务逻辑分离,提高了代码的可维护性。 Spring中的事务管理主要涉及以下关键类: 1. `PlatformTransactionManager`: 这...
事务管理是企业级应用中非常重要的一部分,Spring提供了声明式事务管理,这比传统的编程式事务管理更加灵活和简洁。 1. **事务管理器配置**:配置HibernateTransactionManager作为事务管理器,它可以自动地处理事务...
例如,通过XML配置或Java配置来启用声明式事务管理。 总结,Spring的事务管理是其强大功能的一部分,通过深入理解并掌握其源码,我们能够更灵活、高效地处理复杂的事务场景,确保系统的稳定性和数据的一致性。
**第十步:配置声明式事务** - 配置`HibernateTransactionManager`对象,支持事务管理。 - 方案一:使用`TransactionProxyFactoryBean`配置多个目标类,适用于复杂场景。 - 方案二:使用`TransactionInterceptor`和...
8. **声明式事务管理**:Spring通过@Transactional注解实现了声明式事务管理。`org.springframework.transaction`和`org.springframework.transaction.interceptor`包中的TransactionInterceptor处理事务的开始、...