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 中配置声明式事务管理到此结束 ————————————————————|