spring基础 知识要点: Spring的事务管理及实现,Spring操作Hibernate的事务管理器; 回顾上次课的要点: 代理模式,AOP框架,Spring中AOP的实现方式 一、Spring的事务管理 传统数据库事务的特性: Atomic: 原子性. 事务中的各个操作不可分割. 要么都成功,要么都失败. Consistency: 一致性. 数据库从一种状态转变为另一种状态, 只有合法的数据才可写入数据库, 数据有任何违例都应该回滚回最初状态. Isolation: 隔离性.事务允许多个用户对同一数据并发访问, 各个事务互相独立, 且不破坏数据的正确性和完整性. Durability: 成功提交的事务的持久性. 可掉电保存. Spring框架是Java开发中不可或缺的一部分,特别是在企业级应用中,其强大的事务管理和AOP(面向切面编程)功能使得代码更加简洁、易于维护。本文主要探讨Spring中的事务管理及其核心概念,包括事务的四大特性、Spring事务管理的两种方式、事务管理器、事务状态以及事务传播规则。 我们来理解传统数据库事务的四大特性: 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会留下部分已完成的操作。 2. 一致性(Consistency):事务完成后,系统状态会从一个一致状态转换到另一个一致状态,确保数据的合法性。 3. 隔离性(Isolation):在并发环境下,多个事务之间互不影响,保证了数据的独立性。 4. 持久性(Durability):一旦事务提交,其结果将永久保存,即使系统出现故障,也不会丢失。 在Java环境中,Spring框架提供了灵活的事务管理机制,既支持编程式事务管理,也支持声明式事务管理。编程式事务管理允许开发者直接控制事务的开始、提交、回滚等操作,而声明式事务管理则是通过注解或XML配置来声明事务边界,使得事务管理与业务逻辑解耦。 Spring的事务管理器是关键组件,例如JDBC事务管理器、JTA事务管理器和Hibernate事务管理器等,它们实现了`org.springframework.transaction.PlatformTransactionManager`接口。`TransactionStatus`接口代表了事务的状态,它会与当前执行的线程关联,提供对事务的控制。 事务的隔离级别定义了不同事务间的可见性,Spring提供了五种隔离级别,对应于JDBC的隔离级别: 1. ISOLATION_DEFAULT:使用数据库默认的隔离级别。 2. ISOLATION_READ_UNCOMMITTED:最低隔离级别,可能导致脏读、不可重复读和幻读。 3. ISOLATION_READ_COMMITTED:防止脏读,但可能有不可重复读。 4. ISOLATION_REPEATABLE_READ:防止脏读和不可重复读,但可能存在幻读。 5. ISOLATION_SERIALIZABLE:最高隔离级别,完全序列化执行,防止所有并发问题。 此外,Spring定义了七种事务传播行为,用于控制事务在方法调用之间的传播: 1. PROPAGATION_REQUIRED:默认行为,如果存在事务,则加入当前事务,否则新建事务。 2. PROPAGATION_SUPPORTS:如果存在事务,则支持,否则非事务执行。 3. PROPAGATION_MANDATORY:如果存在事务,则加入,否则抛出异常。 4. PROPAGATION_REQUIRES_NEW:总是新建事务,如果已有事务则挂起。 5. PROPAGATION_NOT_SUPPORTED:非事务执行,如果有事务则挂起。 6. PROPAGATION_NEVER:非事务执行,如果已有事务则抛出异常。 7. PROPAGATION_NESTED:如果存在事务,则在嵌套事务中执行,否则按REQUIRED行为执行。 Spring的事务管理机制为开发者提供了强大而灵活的工具,能够在复杂的并发环境中保证数据的一致性和完整性。通过声明式事务管理,开发者可以专注于业务逻辑,而不必关心事务的细节,从而提高代码的可读性和可维护性。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助