`

Spring事务配置属性参数

阅读更多

Spring事务描述信息都由TransactionDefinition接口定义,有如下几个方面:

 

1、事务移植性(propagation):

 

int PROPAGATION_REQUIRED = 0;

 

/**
	 * Support a current transaction; create a new one if none exists.
	 * Analogous to the EJB transaction attribute of the same name.
	 * <p>This is typically the default setting of a transaction definition,
	 * and typically defines a transaction synchronization scope.
	 */
	int PROPAGATION_REQUIRED = 0;

 

 int PROPAGATION_SUPPORTS = 1;

 

/**
	 * Support a current transaction; execute non-transactionally if none exists.
	 * Analogous to the EJB transaction attribute of the same name.
	 * <p><b>NOTE:</b> For transaction managers with transaction synchronization,
	 * <code>PROPAGATION_SUPPORTS</code> is slightly different from no transaction
	 * at all, as it defines a transaction scope that synchronization might apply to.
	 * As a consequence, the same resources (a JDBC <code>Connection</code>, a
	 * Hibernate <code>Session</code>, etc) will be shared for the entire specified
	 * scope. Note that the exact behavior depends on the actual synchronization
	 * configuration of the transaction manager!
	 * <p>In general, use <code>PROPAGATION_SUPPORTS</code> with care! In particular, do
	 * not rely on <code>PROPAGATION_REQUIRED</code> or <code>PROPAGATION_REQUIRES_NEW</code>
	 * <i>within</i> a <code>PROPAGATION_SUPPORTS</code> scope (which may lead to
	 * synchronization conflicts at runtime). If such nesting is unavoidable, make sure
	 * to configure your transaction manager appropriately (typically switching to
	 * "synchronization on actual transaction").
	 * @see org.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization
	 * @see org.springframework.transaction.support.AbstractPlatformTransactionManager#SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
	 */
	int PROPAGATION_SUPPORTS = 1;

 

 int PROPAGATION_MANDATORY = 2;

 

/**
	 * Support a current transaction; throw an exception if no current transaction
	 * exists. Analogous to the EJB transaction attribute of the same name.
	 * <p>Note that transaction synchronization within a <code>PROPAGATION_MANDATORY</code>
	 * scope will always be driven by the surrounding transaction.
	 */
	int PROPAGATION_MANDATORY = 2;
 

 

int PROPAGATION_REQUIRES_NEW = 3;

 

 

/**
	 * Create a new transaction, suspending the current transaction if one exists.
	 * Analogous to the EJB transaction attribute of the same name.
	 * <p><b>NOTE:</b> Actual transaction suspension will not work out-of-the-box
	 * on all transaction managers. This in particular applies to
	 * {@link org.springframework.transaction.jta.JtaTransactionManager},
	 * which requires the <code>javax.transaction.TransactionManager</code>
	 * to be made available it to it (which is server-specific in standard J2EE).
	 * <p>A <code>PROPAGATION_REQUIRES_NEW</code> scope always defines its own
	 * transaction synchronizations. Existing synchronizations will be suspended
	 * and resumed appropriately.
	 * @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager
	 */
	int PROPAGATION_REQUIRES_NEW = 3;

 

 int PROPAGATION_NOT_SUPPORTED = 4;

 

 int PROPAGATION_NEVER = 5;

 

 int PROPAGATION_NESTED = 6;

 

2、事务隔离度:

int ISOLATION_DEFAULT = -1;

 

/**
	 * Use the default isolation level of the underlying datastore.
	 * All other levels correspond to the JDBC isolation levels.
	 * @see java.sql.Connection
	 */
	int ISOLATION_DEFAULT = -1;
 

 

3、超时时间设置

 

int TIMEOUT_DEFAULT = -1;

 

 

/**
	 * Use the default timeout of the underlying transaction system,
	 * or none if timeouts are not supported. 
	 */
	int TIMEOUT_DEFAULT = -1;

 

 

4.+/- Exception配置

 

表示在方法内部抛出异常(可以是特定异常)时候,都提交或者回滚事务。

 

分享到:
评论

相关推荐

    Spring事务小demo

    4. **Mybatis的事务配置**:在mybatis-config.xml中,需要配置事务工厂,如JDBC的TransactionFactory,以便Mybatis能够正确处理事务。同时,数据库连接池如Druid、HikariCP等也需要配置,它们提供了高效的连接管理和...

    Spring事务管理配置

    在深入探讨Spring事务管理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。其中,事务管理是Spring框架中的一个重要...

    JSP 中spring事务配置详解.docx

    Spring事务管理主要有两种方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中手动调用开始事务、提交事务、回滚事务等方法,而声明式事务管理则是通过配置来定义事务边界,更易于维护和使用。本文...

    spring框架配置bean的高级属性

    ### Spring框架配置Bean的高级属性解析 在Spring框架中配置Bean是进行依赖注入的基础操作,而深入理解如何高效地配置Bean及其属性对于提高开发效率、优化项目结构具有重要意义。本文将详细解读标题“spring框架配置...

    在Spring中配置Hibernate事务

    首先,我们需要理解Spring事务管理的两种基本模式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过在XML或注解中声明事务边界,让Spring...

    Spring声明式事务配置管理方法

    以下是关于Spring声明式事务配置管理的详细说明: 1. **事务管理器配置**: 在`/WEB-INF/applicationContext.xml`文件中,我们需要定义一个事务管理器Bean。通常,对于Hibernate,我们会使用`...

    aop与spring事务处理

    - 上述配置定义了一个Hibernate SessionFactory,并指定了相关的Hibernate配置属性,如数据库方言和是否显示SQL语句。此外,还定义了一个事务管理器,它用于管理基于此SessionFactory的所有事务。 综上所述,AOP ...

    JavaEE spring事务操作环境和基本功能搭建

    本文将详细讲解如何搭建Spring事务操作环境以及实现基本功能。 首先,理解事务(Transaction)的重要性。在数据库操作中,事务是确保数据一致性和完整性的关键概念。一个事务是一系列数据库操作的集合,这些操作...

    Spring事务管理和SpringJDBC思维导图

    在思维导图"Spring Transaction.twd"中,可能包含了Spring事务管理的各个概念和它们之间的关系,如事务的ACID属性(原子性、一致性、隔离性和持久性),事务管理器,以及声明式和编程式事务管理的实现方式。...

    springboot整合spring事务

    5. **事务属性**:`@Transactional`注解可以接受一些参数,如`propagation`(传播行为)、`isolation`(隔离级别)、`timeout`(超时时间)和`rollbackFor`(指定异常类型触发回滚)等,以定制事务的行为。...

    Spring环境配置

    2. **contextConfigLocation**:该参数指定了Spring配置文件的位置。这里使用`classpath:*beans*.xml`表示从类路径下查找所有名称包含`beans`的XML配置文件。 3. **load-on-startup**:此属性指定Servlet容器启动时...

    spring proxool配置资料

    5. **Spring事务管理**:在Spring中,我们可以利用`PlatformTransactionManager`接口进行事务管理。对于使用Proxool的数据源,我们可以选择`DataSourceTransactionManager`,并将其与上面配置的数据源关联起来。 6....

    使用Spring aop需要配置的参数

    下面我们将详细探讨在Spring AOP中需要配置的相关参数及其作用。 1. **启用AOP代理** 要使用Spring AOP,首先需要在Spring配置文件或使用Java配置类中启用AOP代理。在XML配置中,这可以通过 `&lt;aop:config&gt;` 标签...

    spring IOC容器依赖注入XML配置

    在实际应用中,Spring的XML配置文件可能包含多个bean,每个bean都有自己的配置,包括初始化方法、销毁方法、属性注入、依赖关系等。此外,还可以使用`&lt;import&gt;`标签将其他配置文件导入,以便于组织和管理复杂的配置...

    mybatis 拦截器 + spring aop切面 + spring事务+ 反射工具类

    例如,可能会有一个自定义的MyBatis拦截器用于分页查询,一个Spring AOP切面用于记录操作日志,Spring事务管理确保数据的一致性,而反射工具类可能用于动态加载配置或处理某些通用的反射任务。通过这些组件的组合,...

    配置spring

    在本文中,我们将深入探讨如何配置Spring框架,以及在整合Struts和iBatis时需要注意的关键步骤。Spring是一个广泛使用的Java应用程序框架,它提供了一种模块化和松耦合的方式来组织和管理应用组件。Struts则是一个...

    Spring多数据源配置

    这通常意味着所有的事务都将由一个全局的`TransactionManager`来管理,除非使用更复杂的配置,如`@Transactional`注解中的`transactionManager`属性。 #### 第四步:使用JTATransactionManager 当涉及到跨数据源的...

    S详细讲解SH中Spring事务流程.doc

    下面,我们将详细解析Spring事务管理的配置和工作原理。 首先,我们需要配置Spring的数据源。在示例的`app.xml`配置文件中,我们看到使用了C3P0连接池来管理数据库连接。C3P0是一个开源的JDBC连接池,它实现了数据...

    spring_如何管理事务的

    #### 一、Spring事务管理概述 Spring框架为开发者提供了一套强大的事务管理机制,它简化了应用程序中的事务控制逻辑,使得开发人员能够更加专注于业务逻辑的编写,而不是繁琐的事务管理代码。Spring支持两种类型的...

Global site tag (gtag.js) - Google Analytics