数据访问——事务管理
数据库事务就是多个SQL语句,要么所有执行成功,要么所有执行失败。满足4个特性:原子性,一致性,隔离性和持久性。
Spring框架提供了一致的事务管理抽象,这带来了以下好处:
- 为复杂的事务API提供了一致的编程模型:如JTA,JDBC,Hibernate,JPA和JDO
- 支持 声明式事务管理
- 提供比大多数复杂的事务API更简单的,更易于使用的 编程式 事务管理API
- 非常好地整合Spring的各种数据访问抽象
EJB事务建立在JTA的基础上,而JTA又必须通过JNDI获取,这意味着,不管用户的应用是跨数据源的应用,还是单数据源的应用,EJB都要求使用全局事务的方式加以处理,这意味着基于EJB的应用无法脱离应用服务器所提供的容器环境。
- 关键抽象
在Spring事务管理高层抽象层主要包括3个接口,分别是PlatformTransactionManager,TransactionDefinition,TransactionStatus。
TransactionDefinition定义了Spring兼容的事务属性(事务隔离,事务传播,事务超时,只读状态),这些属性对事务管理控制的若干方面进行配置。
TransactionStatus代表一个事务的具体运行状态。
- 编程式事务管理
使用TransactionTemplate,是线程安全的。
- 声明式事务管理
- Spring声明式事务管理可以在任何环境下使用,而不像EJB建立在JTA上,无法脱离容器。
- Spring声明式事务管理可以被应用到任何类上。
- Spring允许你通过AOP定制事务行为。如果需要,你可以在事务回滚中插入定制的行为。
- Spring不提供高端应用服务器提供的跨越远程调用的事务上下文传播。
声明式事务管理有两种配置方式:基于XML和注解的方式。
相关推荐
LeeLuffy 2020-10-16
jakefei 2020-07-19
云之飞踢 2020-07-08
lpfvip00 2020-06-25
msmysql 2020-06-21
zbcaicai 2020-06-21
花落花开春去秋来 2020-06-20
wenjieyatou 2020-06-09
middleware0 2020-06-09
CharlesYooSky 2020-06-06
feinifi 2020-11-12
打不死的小强 2020-07-03
loviezhang 2020-06-16
林大鹏 2020-06-10
pengpengflyjhp 2020-05-14
debugjoker 2020-04-10
zhangll00 2020-05-11
xiaoxiangyu 2020-04-30
huolan 2020-04-27