Spring 声明式事务管理

|—————————————————本文主要介绍如何在 Spring 中配置声明式事务管理 —————————————————| 

  一、事务

    事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

  事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为 ACID 特性。

    1.原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸多操作要么都做,要么都不做。

    2.一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性和原子性是密切相关的。

    3.隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发

     执行的各个事务之间不能相互干扰。

    4.持续性(durability):持续性又称持久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

     接下来的其他操作或故障不应该对其有任何影响。

  二、配置事务管理器

<!-- 配置事务 -->
<!-- 配置Hibernate的局部事务管理器,使用HibernateTranscationManager类 -->
<!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
  <!-- 配置HibernateTranscationManager是需要注入SessionFactory的引用 -->
  <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

  三、添加注解

     service 包中的类或者是具体的方法加上注解 @Transactional,如果是不用对数据进行修改的方法要添加一个属性

    比如:查询所有数据的方法 @Transactional(readOnly=true) 

      

      

|———————————————————— Spring 中配置声明式事务管理到此结束 ————————————————————| 

 

原文地址:https://www.cnblogs.com/wangmk/p/5980727.html