Spring的事务

二 Spring的事务

2.1 Spring中的事务控制方式

Spring的事务控制可以分为编程式事务控制和声明式事务控制。

编程式

开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。

声明式

开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。

 

2.2 编程式事务控制相关对象【了解】

2.2.1 PlatformTransactionManager

PlatformTransactionManager接口,是spring的事务管理器,里面提供了我们常用的操作事务的方

法。

 

注意:

 

2.2.2 TransactionDefinition

TransactionDefinition接口提供事务的定义信息(事务隔离级别、事务传播行为等等)

 

1)事务隔离级别

设置隔离级别,可以解决事务并发产生的问题,如脏读、不可重复读和虚读(幻读)。

2)事务传播行为

事务传播行为指的就是当一个业务方法【被】另一个业务方法调用时,应该如何进行事务控制。

 

 

2.2.3 TransactionStatus

TransactionStatus 接口提供的是事务具体的运行状态。

可以简单的理解三者的关系:事务管理器通过读取事务定义参数进行事务管理,然后会产生一系列的

务状态

 

2.2.4 知识小结

Spring中的事务控制主要就是通过这三个API实现的

理解三者的关系:事务管理器通过读取事务定义参数进行事务管理,然后会产生一系列的事务状态

 

2.3 基于XML的声明式事务控制【重点】

在 Spring 配置文件中声明式的处理事务来代替代码式的处理事务。底层采用AOP思想来实现的。

声明式事务控制明确事项:

核心业务代码(目标对象) (切入点是谁?)

事务增强代码(Spring已提供事务管理器))(通知是谁?)

切面配置(切面如何配置?)

2.3.1 快速入门

需求

使用spring声明式事务控制转账业务。

步骤分析

 

实现

省略

2.3.2 知识小结

 

2.4 基于注解的声明式事务控制【重点】

2.4.1 常用注解

步骤分析

 

实现

省略

2.4.2 知识小结

 

三 Spring集成web环境

3.1 ApplicationContext应用上下文获取方式

应用上下文对象是通过 new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但

是每次从容器中获得Bean时都要编写 new ClasspathXmlApplicationContext(spring配置文件) ,

这样的弊端是配置文件加载多次,应用上下文对象创建多次。

 

解决思路分析:

在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动

时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域

servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。

 

3.2 Spring提供获取应用上下文的工具

上面的分析不用手动实现,Spring提供了一个监听器ContextLoaderListener就是对上述功能的封

装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供

了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。

 

所以我们需要做的只有两件事:

1. 在web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)

2. 使用WebApplicationContextUtils获得应用上下文对象ApplicationContext

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forrest Gump plus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值