Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate事务管理器,包括介绍OrderListManager服务等方面。
Hibernate事务管理器
由于我们已决定使用Hibernate作为ORM工具,下一步要做的就是配置一个特定于Hibernate事务管理器实现。
id="transactionManager1" - class="org.springframework.orm.hibernate.
- HibernateTransactionManager">
name="sessionFactory"> - local="sessionFactory1"/>
设计多个组件中的事务的管理
现在,我们来讨论什么是“装配组件事务”。您也许注意到了为域中的服务级组件OrderListManager所指定的各种TX属性。
为了更好的说明,我们来列出我们的域中的一些非功能性需求(Non-Functional Requirement,NFR):
◆业务对象需要保存在一个数据库中(appfuse1)。
◆审计时要登录到另一个数据库中(appfuse2),出于安全的考虑,数据库要有防火墙保护。
◆业务组件应该可以重用。
◆必须尽一切努力审计业务服务层的所有活动。
考虑了以上要求之后,我们决定,OrderListManager服务会将所有的审计日志调用委托给已经可用的AuditManager组件。
这里值得注意的一点是,由于我们的NFR,我们要将与OrderListManager相关的对象映射到appfuse1数据库,而将与审计相关的对象映射到appfuse2。这样,无论要审计什么,OrderListManager组件都会调用AuditManager组件。我们会看到,OrderListManager组件中的所有方法都应该是事务性的,因为我们通过服务来创建订单和线项目(line item)。那么AuditManager组件中的服务呢?因为它做的是审计跟踪,我们关心的是尽可能维持长时间的审计跟踪,并针对系统中所有可能的业务活动。这就产生了如下的需求:“即使主要的业务活动失败了,也要进行审计跟踪记录”。AuditManager组件同样要有自己的事务,因为它也与自己的数据库进行交互。Hibernate事务管理器如下所示:
id="auditManager"class="org.springframework.transaction.
interceptor.TransactionProxyFactoryBean">name="transactionManager"> - local="transactionManager2"/>
name="target"> - local="auditManagerTarget"/>
name="transactionAttributes"> key="log"> - PROPAGATION_REQUIRES_NEW
分享文章:简述Hibernate事务管理器
转载来源:http://www.shufengxianlan.com/qtweb/news25/440625.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联