网站内容运营是什么,个人网站域名所有权,旅游网页设计作品欣赏,重庆在线课程Spring 的事务管理是基于 AOP 实现的#xff0c;而 AOP 是以方法为单位的。Spring 的事务属性分别为传播行为、隔离级别、只读和超时属性#xff0c;这些属性提供了事务应用的方法和描述策略。
在 Java EE 开发经常采用的分层模式中#xff0c;Spring 的事务处理位于业务逻…Spring 的事务管理是基于 AOP 实现的而 AOP 是以方法为单位的。Spring 的事务属性分别为传播行为、隔离级别、只读和超时属性这些属性提供了事务应用的方法和描述策略。
在 Java EE 开发经常采用的分层模式中Spring 的事务处理位于业务逻辑层它提供了针对事务的解决方案。
在 Spring 解压包的 libs 目录中包含一个名称为 spring-tx-3.2.13.RELEASE.jar 的文件该文件是 Spring 提供的用于事务管理的 JAR 包其中包括事务管理的三个核心接口PlatformTransactionManager、TransactionDefinition 和 TransactionStatus。
将该 JAR 包的后缀名 jar 改成 zip 的形式后解压压缩包进入解压文件夹中的 \org\springframework\transaction 目录后该目录中的文件如下图所示。
上图中方框所标注的三个文件是我们要学习的核心接口。这三个核心接口的作用及其提供的方法如下。
1. PlatformTransactionManager PlatformTransactionManager 接口是 Spring 提供的平台事务管理器用于管理事务。该接口中提供了三个事务操作方法具体如下。 TransactionStatus getTransactionTransactionDefinition definition用于获取事务状态信息。void commitTransactionStatus status用于提交事务。void rollbackTransactionStatus status用于回滚事务。在项目中Spring 将 xml 中配置的事务详细信息封装到对象 TransactionDefinition 中然后通过事务管理器的 getTransaction() 方法获得事务的状态TransactionStatus并对事务进行下一步的操作。
2. TransactionDefinition TransactionDefinition 接口是事务定义描述的对象它提供了事务相关信息获取的方法其中包括五个操作具体如下。 String getName()获取事务对象名称。int getIsolationLevel()获取事务的隔离级别。int getPropagationBehavior()获取事务的传播行为。int getTimeout()获取事务的超时时间。boolean isReadOnly()获取事务是否只读。在上述五个方法的描述中事务的传播行为是指在同一个方法中不同操作前后所使用的事务。
传播行为的种类 在事务管理过程中传播行为可以控制是否需要创建事务以及如何创建事务。
通常情况下数据的查询不会改变原数据所以不需要进行事务管理而对于数据的增加、修改和删除等操作必须进行事务管理。如果没有指定事务的传播行为则 Spring3 默认的传播行为是 required。
3. TransactionStatus TransactionStatus 接口是事务的状态它描述了某一时间点上事务的状态信息。其中包含六个操作。
事务的操作
名称说明void flush()刷新事务boolean hasSavepoint()获取是否存在保存点boolean isCompleted()获取事务是否完成boolean isNewTransaction()获取是否是新事务boolean isRollbackOnly()获取是否回滚void setRollbackOnly()设置事务回滚