事务管理服务有:
1、编程式事务管理:使用JTA UserTransaction对象,通过JNDI获取
2、声明式事务管理:通过使用组件模型(即EJB CMT),这是一种建立在JTA基础设施之上的高层服务
使用TransactionTemplate实现编程式的事务声明
//唯一的先决条件是需要获得对PlatformTransactionManager的引用
TransactionTemplate transactionTemplate=(TransactionTemplate)context.getBean("transactionTemplate");
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(
TransactionStatus status) {
transactionTemplate.setTimeout(transactionTime);//事务超时时间
Map resultMap=new HashMap();
try {
//具体业务逻辑处理流程
} catch (Exception e) {
status.setRollbackOnly();//触发事务回滚
}
}
});
编程式事务模板/回调机制对于很多用途来说都是很方便的,不过,它有三个明显缺陷:
1、处理事务的应用代码应该只抛出非受控异常,以避免导致transactionTemplate.execute方法签名和业务对象方法签名不得不抛出受控异常的问题
2、业务对象方法需要关注事务的处理,容器业务对象也需要关注PlatformTransactionManager接口,尽管不需要关注接口的实现类
3、由于回调接口通常是用匿名内部类来实现的,因此回调接口的使用引入了少量的复杂度。
声明式事务管理,可参考:
http://willwen.iteye.com/blog/1976533
至于两种方式哪种更好,这个不大好说,就看自己熟悉哪种就采用哪种
相关推荐
spring事务与数据库操作
Spring事务管理Demo
Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
Spring事务原理、Spring事务配置的五种方式
spring事务配置详解 spring事务配置详解
spring 事务spring 事务spring 事务spring 事务spring 事务
spring 事务传播 demo
Spring事务管理教程,详细讲解了Spring中的事务管理,包括声明式事务,注解式事务,以及事务配置等等
spring事务源码解析
spring 事务传播与隔离级别DEMO 脏读、重复读、幻影读 spring 事务传播与隔离级别DEMO 脏读、重复读、幻影读
Spring事务管理.pdf 1.资料 2.本地事务与分布式事务 3.编程式模型 4.宣告式模型
此ppt中前半部分通过spring事务的60道题的测试,摸底对事务的掌握情况,后半部分,对spring中的事务属性(传播行为、隔离级别、回滚规则、事务超时、是否只读)进行说明
本文档介绍了spring事务隔离级别的使用及详解
包含spring事务管理案例的项目源码和说明文档
Synchronized锁在Spring事务管理下,导致线程不安全。
spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...
spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务...
Spring事务管理中所需要的jar包是 spring-tx-3.2.0.RELEASE.jar
最详细的Spring 事务讲解 让你彻底明白