PROPAGATION_REQUIRED--
支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--
支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--
支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--
新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--
以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED--
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。
如果出现
<prop key="myMethod">PROPAGATION_REQUIRED,readOnly,-Exception </prop>
其中:
-Exception表示有Exception抛出时,事务回滚. -代表回滚+就代表提交
readonly 就是read only, 设置操作权限为只读,一般用于查询的方法,优化作用.
分享到:
相关推荐
在这种情况下,`@Transactional` 注解定义了事务属性,如传播行为和隔离级别。 3. **基于 XML 的声明式事务管理(XML-based Declarative Transaction Management)** 在 XML 配置文件中,你可以使用 `...
- **`<property name="transactionAttributes">`**:配置了事务传播行为(例如 `PROPAGATION_REQUIRED`)以及事务是否只读等属性。 #### 7. 具体的业务逻辑层代理配置详解 - **`<bean id="userBizProxy" ...>`**:...
-- 配置事务属性 --> <property name="transactionAttributes"> *">PROPAGATION_REQUIRED,readOnly <!-- 指向目标Bean --> ``` 这里的`transactionAttributes`属性用于定义事务的传播行为和读写模式...
-- 配置事务属性 --> <property name="transactionAttributes"> *">PROPAGATION_REQUIRED,-Exception ``` 在这个例子中,`userDao` Bean实际上就是一个代理对象,它包含了`userDaoTarget`的所有方法,并为...
在类上直接使用 @Transactional 注解,Spring 会创建基于类的代理,但是这种方式可能导致一些问题,例如:无法通过子类覆盖父类的方法来改变事务属性。 第五种方式:编程式事务管理 除了声明式事务管理,Spring 还...
事务属性(`transactionAttributes`)用于定义不同方法的事务传播行为,如`PROPAGATION_REQUIRED`、`PROPAGATION_MANDATORY`等。这种方法的缺点是配置繁琐,需要为每个业务类单独配置。 2. **通过基类配置事务** ...
#### 一、Spring事务管理概述 Spring框架为开发者提供了一套强大的事务管理机制,它简化了应用程序中的事务控制逻辑,使得开发人员能够更加专注于业务逻辑的编写,而不是繁琐的事务管理代码。Spring支持两种类型的...
### Spring事务管理详解 在企业级应用开发中,事务处理是确保数据完整性和一致性的重要机制。Spring框架提供了灵活且强大的事务管理能力,支持多种事务配置方式,满足不同场景的需求。本文将深入探讨Spring中五种...
首先,Spring事务管理涉及的主要组件包括: 1. 数据源(DataSource):这是连接数据库的桥梁,负责管理数据库连接。在Spring中,常见的数据源实现有BasicDataSource或JNDI数据源。如果使用Hibernate,DataSource...
### Spring中的Transaction事务传播行为种类详解 #### 一、引言 在开发基于Spring框架的应用程序时,事务管理是确保数据一致性的重要手段之一。Spring框架提供了丰富的事务管理功能,其中包括了事务传播行为...
--配置事务属性--> <property name="transactionAttributes"> *">PROPAGATION_REQUIRED,-Exception ``` 这里的配置使用了`TransactionProxyFactoryBean`来创建事务代理。`transactionManager`指定了事务...
-- 配置事务属性 --> <property name="transactionAttributes"> *">PROPAGATION_REQUIRED ``` **适用场景:** 当应用程序中的服务层 Bean 较少时,可以采用这种方式,它能够较为灵活地控制每个 Bean 的...
此外,还需要指定事务属性,即哪些方法应该在何种传播级别下执行事务。 ```xml <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> ...
在这里,`transactionAttributes`属性定义了不同方法名前缀下的事务传播行为和隔离级别。 2. **基于注解的AOP代理配置** Spring也支持使用@Transactional注解来声明事务边界。这种方式下,需要启用组件扫描并配置...
总结来说,Spring的事务配置可以通过调整DataSource、TransactionManager以及代理机制中的事务属性来适应不同的数据访问技术和事务需求。通过上述的配置方式,Spring能够灵活地管理事务,保证了业务操作的一致性和...
在深入探讨Spring事务管理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。其中,事务管理是Spring框架中的一个重要...