<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<<hibernate>>
标注方式
<!-- Transaction -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
xml方式
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="SessionFactory" />
</property>
</bean>
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="signUp">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<<jdbc>>
<!-- Transaction -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
xml方式
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="sessionFactory">
<ref local="SessionFactory" />
</property>
</bean>
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="signUp">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
分享到:
相关推荐
总结,Spring的事务管理是其核心特性之一,它简化了事务的处理,使得开发者能够专注于业务逻辑。通过编程式和声明式两种方式,我们可以根据项目需求选择合适的事务管理策略。如果你想要深入了解,可以参考提供的博客...
Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理因其简洁性和易用性而更受欢迎。本文将详细介绍Spring中的事务传播属性,并通过具体的例子来解释每种传播行为的特点。 #### ...
### Spring如何管理事务 #### 一、Spring事务管理概述 Spring框架为开发者提供了一套强大的事务管理机制,它简化了应用程序中的事务控制逻辑,使得开发人员能够更加专注于业务逻辑的编写,而不是繁琐的事务管理...
- **Spring 事务管理**:Spring 提供了两种事务管理方式:编程式事务管理和声明式事务管理。声明式事务管理通常更受欢迎,因为它可以通过简单的配置实现,而无需编写额外的代码。 2. **Spring 自定义切面事务失效...
总结来说,Spring事务管理失效的原因是多方面的,涵盖从代理模式原理到AOP的实现细节,再到异常处理机制,以及事务传播和隔离级别的配置等多个层面。开发者需要深入理解Spring框架的内部机制,才能在实际开发中有效...
Spring提供了多种方式来管理事务,使得开发者能够在复杂的业务逻辑中更好地控制数据的持久化过程,确保数据的一致性和完整性。 在Spring框架中,事务管理主要分为编程式事务管理和声明式事务管理两种: 1. **编程...
声明式事务管理通过配置元数据(如XML或注解)来控制事务边界,而编程式事务管理则通过TransactionTemplate或PlatformTransactionManager接口直接在代码中管理事务。 在描述中提到的博客文章中,作者可能详细讲解了...
在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用...这个实例将帮助开发者更好地理解和实践Spring与Hibernate的集成,以及如何有效地管理事务,确保应用程序的数据一致性。
### Spring事务管理详解 #### 一、Spring事务管理概述 Spring框架提供了强大的事务管理功能,使得开发者能够更方便地管理应用程序中的事务。Spring事务管理主要包括两种类型:编程式事务管理和声明式事务管理。 -...
在与Hibernate集成时,Spring通过`HibernateTransactionManager`来管理事务。它实现了`PlatformTransactionManager`接口,能够与Hibernate的Session进行交互。在每次事务开始时,`HibernateTransactionManager`会...
2. 声明式事务管理:这是 Spring 的一大特色,它允许开发者在配置文件或注解中声明事务的边界,而不必在业务代码中显式管理事务。Spring 支持在 XML 配置文件中使用 `<tx:advice>` 和 `<tx:annotation-driven>` 元素...
在Spring中,我们可以通过编程式或声明式的方式来管理事务。声明式事务管理更受青睐,因为它更加便捷且易于维护,通常通过在XML配置文件或注解中定义事务边界。 在给定的资源中,JOTM(Java Open Transaction ...
### Spring事务管理的方法 #### 一、引言 在企业级应用开发中,事务管理是一项至关重要的技术。Spring框架作为Java领域中一个非常流行的轻量级框架,为开发者提供了多种方式来实现事务管理,其中主要分为编程式...
本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...
这使得开发者无需在业务逻辑代码中手动管理事务的开始、提交和回滚。Spring的`PlatformTransactionManager`接口是所有事务管理器的基类,如JDBC的DataSourceTransactionManager和JTA的JtaTransactionManager。 **2....
2. **基于注解的声明式事务管理**: 使用@Transactional注解在方法上,Spring会自动管理事务的生命周期。这个注解可以设置事务属性,如isolation(隔离级别)、propagation(传播行为)、timeout(超时时间)等。 **...
1. **编程式事务管理**:开发者需要手动调用`PlatformTransactionManager`接口的方法来管理事务的开始、提交和回滚。这种方式灵活性高,但易于引入错误,且不易于维护。 2. **声明式事务管理**:这是Spring最常用的...
总结,Spring基于注解的事务管理为开发者提供了一种简洁、高效的方式来管理事务。通过`@Transactional`注解,我们可以轻松地控制事务的边界,设置事务属性,并结合Spring的其他模块(如Spring JDBC)进行高效的数据...