- 浏览: 285180 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
lsy812198178:
写的很好,有收获
Java内部类的作用 -
JsonLiangyoujun:
关于第四点,同时继承一个类和实现一个接口的话,重写的应该是父类 ...
Java内部类的作用 -
chenluhe123:
非常感谢楼主分享,浅显易懂
Java内部类的作用 -
唐予之.:
学有所获,非常感谢
Java内部类的作用 -
o22221234:
...
Java内部类的作用
在学习spring事务管理时,我忍不住要问,spring为什么进行事务管理,spring怎么进行的事务管理?首先,为什么要进行事务,接下来说说spring是怎样进行事务管理的.
Spring事务策略,也就是spring事务管理的实现方式.它有一个统一的抽象是由实现下面这个接口完成的.org.springframework.transaction.PlatformTransactionManager
不管是声明式的还是编程式的事务管理都需要此抽象来完成. 两种Spring事务管理方式:编程式、声明式。 Spring提供两种方式的编程式事务管理,分别是:使用TransactionTemplate和直接使用PlatformTransactionManager。 1.TransactionTempale采用和其他Spring模板,如JdbcTempalte和HibernateTemplate一样的方 法。它使用回调方法,把应用程序从处理取得和释放资源中解脱出来。如同其他模板,TransactionTemplate是线程安全的。代码片段:
使用TransactionCallback()可以返回一个值。如果使用TransactionCallbackWithoutResult则没有返回值。 2.也可以使用PlatformTransactionManager直接管理事务。简单地通过一个bean引用给你的bean传递一个你使用的 PlatformTransaction对象。然后,使用TransactionDefinition和TransactionStatus对象就可以发 起、回滚、提交事务。如下片段:
Spring也提供声明式事务管理。这是通过AOP实现的。大多数Spring用户选择声明式事务管理,这是最少影响应用代码的选择,因而这是和非侵入性的轻量级容器的观念是一致的。 1)通常通过TransactionProxyFactoryBean设置Spring事务代理。需要一个目标对象包装在事务代理中。这个目标对象 一般是一个普通Javabean。当我们定义TransactionProxyFactoryBean时,必须提供一个相关的 PlatformTransactionManager的引用和事务属性。事务属性含有事务定义。例如:
事务代理会实现目标对象的接口:这里是属性名是target的引用。id是transactionServiceControl。(使用CGLIB 也可以实现具体类的代理。只要设置proxyTargetClass属性为true即可。如果目标对象没有实现任何接口,这将自动设置该属性为true。 通常,我们希望面向接口编程。)使用proxyInterfaces属性来限定事务代理来代理指定接口也是可以。 也可以通过从org.springframework.aop.framework.ProxyConfig继承或所有AOP代理工厂共享的属性来定制 TransactionProxyFactoryBean行为。 然后,说说属性名是transactionAttributes意义: TransactionProxyFactoryBean允许你通过“preInterceptors”和 “postInterceptors”属性设置前或后的拦截操作。可以设置任意数量的前和后通过,它们的类型可以是Advistor(切入 点),MethodInterceptor或被当前Spring配置支持的通知类型。例 如:ThrowAdvice,AfterReturningAdvice或BeforeAdvice。这些通知必须支持实例共享模式。如果你需要高级 AOP特性操作事务,通过org.springframework.aop.framework.ProxyFactoryBean,而不是 TransactionProxyFactory实用代理创建者。 2)另一种声明方式:BeanNameAutoProxyCreator 最后,总结一下Spring的优点: |
http://blog.csdn.net/trwhoya/archive/2009/09/09/4535433.aspx
发表评论
-
org.springframework.dao.InvalidDataAccessResourceUsageException: could not inser
2011-03-10 21:50 1290最后解决是把配置文件中主键生成策略由sequence改为 ... -
List remove操作容易出现的问题
2011-02-22 22:10 1259import java.util.*; public ... -
JavaScript位置存放
2011-02-17 19:30 988[装]:http://blog.sina.com.cn/s/b ... -
spring quartz自动发送邮件
2011-02-15 18:15 1060http://static.springsource.org/ ... -
在Spring中使用javaMail的项目发布问题解决
2011-02-15 14:00 1068org.springframework.beans.facto ... -
struts2.0 action转跳到jsp页面css失效解决方案
2011-02-14 19:40 1810像页面转跳失效问题肯定是路径的问题。建议改相对路径为绝对路径 ... -
org.hibernate.exception.ConstraintViolationException: could not insert: [com.tes
2011-02-12 17:33 1854数据库中有字段设置long varchar 用hiberna ... -
错误:The type javax.servlet.ServletContext cannot be resolved
2011-01-06 21:30 2932为获取服务器端项目根路径 来源:http://blog.cs ... -
项目开发记录
2011-01-06 21:11 955有机会好好看看 http://tianhandigeng.i ... -
在Struts 2中实现文件上传
2011-01-06 17:06 824http://www.blogjava.net/max/arc ... -
Struts2 OGNL表达式的使用
2011-01-05 19:12 4755OGNL全名Object Graph Navigati ... -
Hibernate分页实现
2011-01-04 16:30 845Dao写好了,具体分页是照着他实现的,很不多,方便简单易懂 h ... -
Action从jsp获取url的参数
2011-01-04 12:25 1283String [] ee=(String []) Action ... -
奇怪的错误,待解决
2011-01-03 21:08 1367感觉什么都没做今天,就出现了这个错: org.hiberna ... -
Can't create DB2 tables: Exception testing case sensitivity
2011-01-03 14:39 1346$ ./repotools.sh -createTables ... -
Jsp遍历List输出,超弱智的问题
2011-01-02 21:39 1926一直报错: org.apache.jasper.JasperE ... -
struts2默认拦截器详细说明
2011-01-01 20:46 1028http://hi.baidu.com/zkban/blog/ ... -
request.getAttribute() 和 request.getParameter() 有何区别?
2010-12-31 09:14 2026Request.getAttribute()是提取自己设置的值 ... -
DB2 备份和恢复
2010-12-30 20:06 1144DB2 备份和恢复 备份和 ... -
执行 DB2 reorgchk
2010-12-30 19:47 4307执行 DB2 reorgchk db2 reorgchk 命令 ...
相关推荐
Spring事务管理Demo
Spring事务管理教程,详细讲解了Spring中的事务管理,包括声明式事务,注解式事务,以及事务配置等等
spring 事务管理的理解
Spring事务管理.pdf 1.资料 2.本地事务与分布式事务 3.编程式模型 4.宣告式模型
spring事务管理 配置文件等详解
Spring事务管理(全),需要的可下载!
本代码使用H2内存数据库演示spring事务使用,包括编程式事务,声明式事务@Transactional使用,自定义事务事务注解实现自定义事务管理器
Java高级编程 实验报告 spring 声明事务 实验目的 掌握spring 声明式事务管理配置 实验环境 本实验采用本实验采用的eclipse或者 Myeclpse开发工具。Spring 4.0以上 Jdk1.7以上、oracle/mysql。
spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...
Synchronized锁在Spring事务管理下,导致线程不安全。
Spring事务管理中所需要的jar包是 spring-tx-3.2.0.RELEASE.jar
3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二.实验内容 (1)使用Spring JDBC实现书店的购书过程,即有如下一个BookShopDao接口...
Spring事务管理4种方式 入门级 最简单demo PlatformTransactionManager TransactionTemplate
Spring声明式事务管理失效的原因,这里面是日常工作中踩过的坑,事务失效所产生的影响比较隐蔽,测试时易忽略,大多是在线上暴露,这可能是对Spring管理下的信任吧
spring3.0两种事务管理配置
在该JAR包的org.springframework.transaction包中,有3个接口文件PlatformTransactionManager、TransactionDefinition和TransactionStatus,如下图所示: Spring事务管理的三个核心接口 5.1.1 事务管理的核心接口 1....
spring-tx spring-transaction spring事务管理实例
此包含有所有Spring事务管理开发所需要的Jar包,包含框架、核心、表达式、日志、编译、事务切面aop、数据库连接、单元测试、框架文本等jar包。