Java事务处理全解析(五)—— Template模式
来源:互联网 发布:java soap xml 编辑:程序博客网 时间:2024/05/19 03:17
在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事务管理,在本篇中,我们将在此基础上引入Template模式进行事务管理。
这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:
Git clone https://github.com/davenkin/java_transaction_workshop.git
Template模式大家应该都很熟悉,比如spring就提供了许多Template,像JdbcTemplate和JmsTemplate等。Template模式的基本思想是:在超类里将完成核心功能的方法声明为抽象方法,留给子类去实现,而在超类中完成一些通用操作,比如JMS的Session的建立和数据库事务的准备工作等。
在本篇文章中,我们使用一个Template类来帮助管理事务,定义TransactionTemplate类如下:
在TransactionTemplate类中定义一个doJobInTransaction方法,在该方法中首先使用TransactionManager开始事务,然后调用doJob方法完成业务功能,doJob方法为抽象方法,完成业务功能的子类应该实现该方法,最后,根据doJob方法执行是否成功决定commit事务或是rollback事务。
在TransactionTemplateBankService的transfer方法中,我们创建了一个匿名的TtransactionTemplate类,并且实现了doJob方法,在doJob方法中调用两个DAO完成业务操作,然后调用调用TransactionTemplateBankService的doJobInTransaction方法。
由于TransactionTemplate只是对上一篇文章中事务处理的一层封装,故TransactionManager和两个DAO类都保持和上一篇中的一样,此时他们都使用SingleThreadConnectionHolder获得Connection,故事务处理成功。
- Java事务处理全解析(五)—— Template模式
- Java事务处理全解析(五)—— Template模式
- Java事务处理全解析(五)—— Template模式
- Java事务处理全解析(五)—— Template模式
- Java事务处理全解析(五)—— Template模式
- java事务全解析(五)--Template模式
- Java事务处理全解析(一)——Java事务处理的基本问题
- java事务处理全解析
- java事务处理全解析
- java事务处理全解析
- java事务处理全解析
- java事务处理全解析(一)
- java事务处理全解析(一)
- Java事务处理全解析(一)——Java事务处理的基本问题
- Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
- Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
- Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
- Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
- JavaScript语言基础---(九)Array
- SQL Server不允许保存更改数据表解决方法
- 在linux中添加字体
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列深度学习检测方法梳理
- 基本的调试器框架
- Java事务处理全解析(五)—— Template模式
- linux下crontab的php脚本使用方法
- TCP 和 UDP 在socket编程中的区别
- Android support.v7库中的几种控件,布局控件
- DOOM4图形研究
- 模拟登陆学校教务处网站,并保存到成绩为excel格式
- Sublime Text 3 Ubuntu x64 运行心得
- 梯度下降法(SGD+BGD+MBGD)
- 化学公式编辑器怎么画聚合物?