Spring中的声明式事务的几种配置方式.docxVIP

Spring中的声明式事务的几种配置方式.docx

  1. 1、本文档共6页,可阅读全部内容。
  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中的四种声明式事务的配置Spring容器中有两种思想很重要,也就是我们常用的Ioc和Aop,如果理解了这两种思想,对于我们学习设计模式和编程有很大的帮助,美国四人帮(GOF)写的设计模式中,有很多都用到了Ioc的思想。简单的说就是依赖注入的思想。常见的一种情况:如果一个类中要复用另外一个类中的功能时,我们可能会首先想到继承,如果你知道Ioc这种思想的话,我想你不会用继承,你会马上想到把要用到功能抽取出来,在我们要用到的类中只需通过set方法简单的注入就可以了,其实这里用到了对象的组合代替继承,这样不仅避免了单一继承,还很好的实现了松耦合。同时也遵循了面向对象的编程的设计原则:多用组合,少用继承。在这里对于Ioc和Aop这两种思想的好处。我就不介绍了。接下来我要说的是Spring中几种常见的事务配置,是Aop和Ioc的充分体现。 在说点题外话,以前EJB在J2EE中开发中可是大名鼎鼎的了。就是因为EJB提供了很多服务,而不需要我们去开发了,其中用到最多的算是它提供的声明式事务了。在Spring没有出现之前,EJB在J2EE开发中扮演着非常重要的角色。同时也是很多项目失败的罪魁祸首。其中的原因就是因为它是重量级,强侵入性收费的框架。需要昂贵的服务器支持,在加上它的测试更是让人头痛。而Spring恰恰与它相反。Spring是一个轻量级的,非侵入性的开源框架。它提供的声明式事务的功能更是强大,不需要容器的支持。这一点吸引力很多人愿意放弃EJB而使用Spring.让我们言归正传吧。 以下两个bean的配置是下面要用到的。 ??? !-- 定义事务管理器(声明式的事务) -- ???? bean id=transactionManager ????? class=org.springframework.orm.hibernate3.HibernateTransactionManager ????? property name=sessionFactory ?????? ref local=sessionFactory / ????? /property ???? /bean ??? !-- *******业务逻辑层(是对各个DAO层的正面封装)主要用到门面模式****** -- ???? bean id=fundService ????? class=com.jack.fund.service.serviceimpl.FundService ????? property name=operdao ?????? ref bean=operatorDAO / ????? /property ????? property name=producedao ?????? ref bean=fundProduceDAO / ????? /property ????? property name=customerdao ?????? ref bean=customerDAO / ????? /property ????? property name=accountdao ?????? ref bean=accountDAO / ????? /property ????? property name=fundaccountdao ?????? ref bean=fundAccountDAO / ????? /property ????? property name=fundtransdao ?????? ref bean=fundTransDAO / ????? /property ???? /bean ??? 可能还有其他很多模块。bean id=fundService/可能只是其中的模块。 ??? 第一种:配置声明式事务的方法如下。也是我们最常用的方法了,它适用于你的库表比较少的情况下。 ??? bean id=fundServiceDAOProxy ????? class=erceptor.TransactionProxyFactoryBean ????? !-- 配置事务管理器 -- ????? property name=transactionManager ?????? ref bean=transactionManager / ????? /property ????? !-- 此属性指定目标类本省是否是代理的对象,如果目标类没有实现任何类,就设为true代表自己 -- ????? property name=proxyTargetClass ?????? valuefalse/value ????? /property ????? property name=proxyInterf

文档评论(0)

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

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

1亿VIP精品文档

相关文档