温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解Hibernate事务管理器

发布时间:2021-06-16 15:29:51 来源:亿速云 阅读:146 作者:chen 栏目:编程语言

这篇文章主要讲解了“如何理解Hibernate事务管理器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解Hibernate事务管理器”吧!

Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate事务管理器,包括介绍OrderListManager服务等方面。

Hibernate事务管理器

由于我们已决定使用Hibernate作为ORM工具,下一步要做的就是配置一个特定于Hibernate事务管理器实现。

<beans>  <!-- other code goes here... -->  <bean id="transactionManager1" class="org.springframework.orm.hibernate.  HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory1"/> </property> </bean>  </beans>

设计多个组件中的事务的管理

现在,我们来讨论什么是“装配组件事务”。您也许注意到了为域中的服务级组件OrderListManager所指定的各种TX属性。

为了更好的说明,我们来列出我们的域中的一些非功能性需求(Non-Functional Requirement,NFR):
◆业务对象需要保存在一个数据库中(appfuse1)。
◆审计时要登录到另一个数据库中(appfuse2),出于安全的考虑,数据库要有防火墙保护。
◆业务组件应该可以重用。
◆必须尽一切努力审计业务服务层的所有活动。

考虑了以上要求之后,我们决定,OrderListManager服务会将所有的审计日志调用委托给已经可用的AuditManager组件。

这里值得注意的一点是,由于我们的NFR,我们要将与OrderListManager相关的对象映射到appfuse1数据库,而将与审计相关的对象映射到appfuse2。这样,无论要审计什么,OrderListManager组件都会调用AuditManager组件。我们会看到,OrderListManager组件中的所有方法都应该是事务性的,因为我们通过服务来创建订单和线项目(line item)。那么AuditManager组件中的服务呢?因为它做的是审计跟踪,我们关心的是尽可能维持长时间的审计跟踪,并针对系统中所有可能的业务活动。这就产生了如下的需求:“即使主要的业务活动失败了,也要进行审计跟踪记录”。AuditManager组件同样要有自己的事务,因为它也与自己的数据库进行交互。Hibernate事务管理器如下所示:

  1. <beans> 

  2.  

  3. <!-- other code goes here... --> 

  4. <bean id="auditManager"class="org.springframework.transaction.
    interceptor.TransactionProxyFactoryBean"> 

  5. <property name="transactionManager"> 

  6. <ref local="transactionManager2"/> 

  7. </property> 

  8. <property name="target"> 

  9. <ref local="auditManagerTarget"/> 

  10. </property> 

  11. <property name="transactionAttributes"> 

  12. <props> 

  13. <prop key="log"> 

  14. PROPAGATION_REQUIRES_NEW  

  15. </prop> 

  16. </props> 

  17. </property> 

  18. </bean> 

  19.  

  20. </beans> 

感谢各位的阅读,以上就是“如何理解Hibernate事务管理器”的内容了,经过本文的学习后,相信大家对如何理解Hibernate事务管理器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI