事务参数,也就是事务属性,也就是事务的特有性质。
事务的参数定义是在接口 TransactionDefinition 中定义的。
首先是隔离级别(isolation),隔离级别,也就是一个事务与其他并发事务之间的数据共享程度的级别。
TransactionDefinition有如下五个定义:
// 使用数据库默认的级别
ISOLATION_DEFAULT
//只能读取已经提交的数据,这样可以防止脏读,但是可能会发生不可重复读和幻读
ISOLATION_READ_COMMITTED
//可以读取尚未提交的数据。这样就有可能发生脏读、不可重复读、幻读
ISOLATION_READ_UNCOMMITED
//可以做到读取同一字段的数据都是一致的,这样就可以防止脏读和不可重复读
ISOLATION_REPEATABLE_READ
//符合ACID,也就是事务的完整性,定义了这一个隔离级别,不会发生什么脏读、不可重复读、幻读等
//但是相应的是以性能为代价的。
ISOLATION_SERIALIZABLE
然后就是传播属性了。传播属性,也就是定义事务的边界问题。
TransactionDefinition定义了7个传播属性,如下:
//顾名思义,强制的,也就是说,当前方法必须在事务中,如果不在事务中,就会抛出异常
PROPAGATION_MANDATORY
//支持嵌套事务,也就是事务中再加一个事务。
PROPAGATION_NESTED
//从不事务,如果在事务中运行,就会抛出异常
PROPAGATION_NEVER
//不支持异常,如果在事务中运行,那么会被挂起
PROPAGATION_NOT_SUPPORTED
//要求事务,必须在事务中运行,如果没有事务,就新建一个事务
PROPAGATION_REQUIRED
//要求新事物,不管什么情况,都新建一个事务
PROPAGATION_REQUIRES_NEW
//支持事务,有事务就用,没有事务就不用。不会自己去新建事务
PROPAGATION_SUPPORTS
此外,TransactionDefinition还有一个字段:TIMEOUT_DEFAULT
这个就是控制事务的超时时间,规定事务必须在多长时间内完成。
还有一个 readyOnly选项,TransactionDefinition定义了一个方法:isReadyOnly。据说如果是 radyonly,事务就会进行一定的优化,使得事务是只读的。
分享到:
相关推荐
将两者整合可以利用Struts2的前端控制器和动作处理能力,结合Spring的依赖注入和事务管理,实现更高效、灵活的应用架构。 **整合流程** 1. **添加依赖**:首先在项目中引入Struts2和Spring的相关库,确保项目能够...
压缩包内包含了众多spring学习资料如:Spring从入门到精通.pdf ,spring+...spring事务.pdf,Spring_Framework-3-AOP.ppt,Spring-Hibernate_Frameworks.ppt等学习资料 都是经过我认真帅选过的学习资料,分享给大家用一用
虽然提供的示例是入门级别的,但它揭示了Spring事务管理的核心概念,为进一步学习和理解Spring事务处理的高级特性奠定了基础。在实际项目中,我们需要根据需求选择合适的配置,确保事务的正确性和数据的一致性。
Spring作为Java企业级应用开发中的核心框架,它提供了丰富的功能,包括依赖注入、面向切面编程、事务管理、数据访问以及Web应用程序的支持。这本书的目的是帮助初学者快速掌握Spring的核心概念和技术,并逐步提升至...
而面向切面编程则允许开发者将关注点分离,如日志、事务管理等,从而提高代码的整洁性和模块化。 本教程的PDF版带有书签,便于读者快速定位到感兴趣的章节。高清的版面设计确保了阅读体验,同时支持文字复制,方便...
6. **Spring事务管理**:Spring的事务管理支持编程式和声明式两种方式,使得在多层架构中管理事务变得简单,无论是在单个服务还是分布式环境中。 7. **Spring Boot**:Spring Boot是Spring的另一个重要项目,用于...
Spring提供了丰富的功能,包括数据访问、事务管理、Web开发、安全控制等多个方面,使得开发者能够更专注于业务逻辑,而不是基础设施的实现。 1. **Spring的核心概念**: - **依赖注入(Dependency Injection,DI)...
2. **面向切面编程(Aspect-Oriented Programming,简称AOP)**:AOP允许程序员定义“切面”,这些切面可以封装跨越多个对象的行为,如日志、事务管理等。Spring的AOP支持基于代理的切面和基于注解的切面。 3. **...
《Spring入门经典》是一本由Mert Caliskan和Kenan Sevindik共同撰写的书籍,主要面向希望深入理解并掌握Spring框架的初学者。Spring是Java领域中最为广泛使用的开源框架,它提供了一个全面的编程和配置模型,旨在...
- **容器管理的事务**:Spring框架提供了强大的事务管理功能,可以轻松地控制事务的边界,支持本地事务和分布式事务。 #### 三、Spring框架与SSH组合 - **Struts**:用于构建Web应用的MVC框架,主要负责处理用户...
2. **Spring事务管理**:Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。 3. **使用Spring管理事务**:开发者可以通过配置或注解来指定事务边界。 #### 框架整合 1. **SSH(Struts + Spring + ...
spring声明式事务管理_入门
7. **AOP(面向切面编程)**:Spring的AOP模块用于实现横切关注点,如日志、事务管理等。通过源码,我们可以看到代理模式和织入过程。 8. **Bean生命周期管理**:源码分析可以帮助我们理解bean的创建、初始化、销毁...
本文将通过一个简单的转账案例来讲解Spring事务管理的基本概念和使用。 ### 事务的理解 事务是数据库操作的基本单位,它保证了一组操作的原子性、一致性、隔离性和持久性(ACID特性)。 1. **原子性**:事务中的...
1课程的介绍 2数据库事务的介绍 3mysq|事务讲解 4mysq|-JDBC事务讲解1 5mysqI-JDBC事务讲解2 6搭建一个spring-boot项目 7idea插件easycode 8spring-boot标签事务 ...11spring-boot jta多数据源事务实例
7. **数据访问**:讲解Spring对JDBC、Hibernate、MyBatis等持久层框架的支持,以及事务管理的配置和策略。 8. **Spring测试**:如何使用Spring提供的测试支持进行单元测试和集成测试,包括Mockito等测试工具的配合...
6. **事务管理**:讲解Spring的事务管理功能,包括编程式事务管理和声明式事务管理,以及事务的传播行为。 7. **AOP**:阐述面向切面编程的基本原理,如何定义切面、通知类型以及如何在Spring中实现AOP。 8. **...
5. **AOP**:Spring的面向切面编程,用于实现关注点分离,如日志记录、事务管理等,可以作为核心业务逻辑之外的补充。 6. **数据访问**:Spring对JDBC、ORM(对象关系映射)框架如Hibernate和MyBatis的支持,以及...
在 Spring 的配置文件中,需要配置 JPA 的数据源、事务管理器以及 Repository 扫描路径。例如: ```xml <bean id="entityManagerFactory" class="org.springframework.orm.jpa....