Spring——事物管理与传播特性
2017-07-27 19:10
309 查看
事物的特性(ACID)
1)原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。2)一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。
3)隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。
4)持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。
Spring管理实务
Annotation方法
applicationContext.xml<!-- 提供事物管理 --> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">< 4000 /span> <property name="sessionFactory" ref ="sessionFactory"/> </bean> <!-- Annotation方法 --> <tx:annotation-driven transaction-manager="txManager"/>
UserService.java
@Transactional public void add(User user){ userDao.save(user); }
xml方法
applicationContext.xml<!-- 提供事物管理 --> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref ="sessionFactory"/> </bean> <!-- xml方法 --> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="getUsers*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="serviceMethod" expression="execution(* com.ssh.service..*.*(..))"/> <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/> </aop:config>
事物的传播特性
当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。事物的七种传播特性:
PROPAGATION_REQUIRED, 表示当前方法必须运行在事务中。如果当前事务存在,方法将会在该事务中运行。否则,会启动一个新的事务。
PROPAGATION_SUPPORTS ,支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY,表示该方法必须在事务中运行,如果当前事务不存在,则会抛出一个异常
PROPAGATION_REQUIRED_NEW,新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED ,表示该方法不应该运行在事务中。如果存在当前事务,在该方法运行期间,当前事务将被挂起。
PROPAGATION_NEVER, 表示当前方法不应该运行在事务上下文中。如果当前正有一个事务在运行,则会抛出异常
PROPAGATION_NESTED, 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与REQUIRED类似的操作。
相关文章推荐
- Spring 管理事务(传播特性、隔离级别、readonly)
- Spring 事物传播特性
- spring 事物的传播特性
- 事物—事物的传播性与Spring事物传播特性
- spring事物传播特性
- Spring事物的传播特性and隔离级别
- spring配置事务管理及事物传播行为介绍(@Transactional(propagation = Propagation.SUPPORTS))
- spring事务传播特性,即spring管理事务的策略
- spring事物传播特性总结
- spring事物传播特性--数据库的隔离级别
- Spring 事物的传播特性
- spring 事物管理特性
- spring事物传播特性
- Spring事物传播特性详解
- spring事物管理之传播行为和隔离级别
- spring学习笔记(一)事务的管理和传播特性
- Spring事物隔离级别以及事物的七种传播特性详细介绍,以及应用当中需要注意的点
- Spring 管理事务(传播特性、隔离级别、readonly)
- spring 事物 传播属性 与 隔离机制
- 切面实现spring事物管理