标签:
一、什么是事务:
事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。
(例如:银行转账,如果张三给李四转1000元,那么李四得收到这1000元,假如中间出现异常,停电或者其他原因,张三的钱转出去了,而李四没收到,这就出大问题了,
顾需要事务来管理)
二、事务的特性:
1、原子性:是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要不都不发生。
2、一致性:是指事务的的前后数据的完整性必须保持一致。
3、隔离性:是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要互相隔离。
4、持久性:是指一个事务一旦被提交,它对数据库中的数据改变就是永久的,即使数据库发生任何故障也不应该对此有任何影响。
三、spring事务管理高层抽象主要接口包括三个接口:
1、PlatfromTransactionManager 事务管理器:(具体见api文档介绍)
2、TransactionDefinition 事务定义信息(传播、隔离、超时,只读):(具体见api文档介绍)
3、TransactionStatus 事务具体运行状态:
四、spring支持两种方式事务管理:
1、编程式的事务管理:在实际应用中很少使用,通过TransactionTemplate手动管理事务。
2、使用xml配置声明式事务:开发中推荐并经常使用,spring声明式事务是通过AOP实现的。
五、编程式事务管理:
手动编写代码进行事务管理(很少使用)
六、声明式事务管理:
1、声明式事务管理方式一:基于TransactionProxyFactoryBean的方式:
需要为每个进行事务管理的类,配置一个TransactionProxyFactoryBean进行增强。
2、声明式事务管理方式二:基于AspectJ的XML方式:
一旦配置好之后,类上面不需要添加东西。
3、声明式事务管理方式三:基于注解的方式:
配置简单,需要在业务层类上添加一个@Transactional的注解。
标签:
原文地址:http://blog.csdn.net/lovelichao12/article/details/51183635