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> ????? <!-- 此属性指定目标类本省是否是代理的对象,如果目标类没有实现任何类,就设为tru

文档评论(0)

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

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

1亿VIP精品文档

相关文档