[spring事务原理.docxVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[spring事务原理

Spring声明式事务配置管理方法/*2011年8月28日 10:03:30 by Rush */环境配置项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法:点击项目右键-Build Path-Add librarys:打开Add Libraries对话框,然后选定 MyEclipse Libraries:点击Next,找到Spring 2.0 aop Libraries并勾选上,点击finsh即可。如果在项目里面能看到下面的库文件,说明已经安装成功。事务配置首先在/WEB-INF/applicationContext.xml添加以下内容:!-- 配置事务管理器 --beanid=transactionManagerclass=org.springframework.orm.hibernate3.HibernateTransactionManagerpropertyname=sessionFactoryrefbean=mySessionFactory//property/bean注:这是作为公共使用的事务管理器Bean。这个会是事先配置好的,不需各个模块各自去配。下面就开始配置各个模块所必须的部分,在各自的applicationContext-XXX-beans.xml配置的对于事务管理的详细信息。首先就是配置事务的传播特性,如下:!-- 配置事务传播特性 --tx:adviceid=TestAdvicetransaction-manager=transactionManagertx:attributestx:methodname=save*propagation=REQUIRED/tx:methodname=del*propagation=REQUIRED/tx:methodname=update*propagation=REQUIRED/tx:methodname=add*propagation=REQUIRED/tx:methodname=find*propagation=REQUIRED/tx:methodname=get*propagation=REQUIRED/tx:methodname=apply*propagation=REQUIRED//tx:attributes/tx:advice!-- 配置参与事务的类 --aop:configaop:pointcutid=allTestServiceMethodexpression=execution(* com.test.testAda.test.model.service.*.*(..))/aop:advisorpointcut-ref=allTestServiceMethodadvice-ref=TestAdvice//aop:config需要注意的地方:(1) advice(建议)的命名:由于每个模块都会有自己的Advice,所以在命名上需要作出规范,初步的构想就是模块名+Advice(只是一种命名规范)。(2)tx:attribute标签所配置的是作为事务的方法的命名类型。如tx:method name=save* propagation=REQUIRED/其中*为通配符,即代表以save为开头的所有方法,即表示符合此命名规则的方法作为一个事务。propagation=REQUIRED代表支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。(3) aop:pointcut标签配置参与事务的类,由于是在Service中进行数据库业务操作,配的应该是包含那些作为事务的方法的Service类。首先应该特别注意的是id的命名,同样由于每个模块都有自己事务切面,所以我觉得初步的命名规则因为 all+模块名+ServiceMethod。而且每个模块之间不同之处还在于以下一句:expression=execution(* com.test.testAda.test.model.service.*.*(..))其中第一个*代表返回值,第二*代表service下子包,第三个*代表方法名,“(..)”代表方法参数。(4) aop:advisor标签就是把上面我们所配置的事务管理两部分属性整合起来作为整个事务管理。图解:下面附上配置声明式事务的一些相关的资料,以下资料均来源于互联网:附一、Spring事务类型详解附二、对spring事务类型详解的一点补充(关于嵌套事务)附三、Transaction后缀给声明式事务管理带来的好处附四、Spring中的四种声明式事务的配置附一、Spring事务类型详解prop key=load*PROPAGATION_REQUIRED,readOnly/pro

文档评论(0)

1974wangpeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档