您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何理解Hibernate事務(wù)管理器”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何理解Hibernate事務(wù)管理器”吧!
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate事務(wù)管理器,包括介紹OrderListManager服務(wù)等方面。
Hibernate事務(wù)管理器
由于我們已決定使用Hibernate作為ORM工具,下一步要做的就是配置一個特定于Hibernate事務(wù)管理器實(shí)現(xiàn)。
<beans> <!-- other code goes here... --> <bean id="transactionManager1" class="org.springframework.orm.hibernate. HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory1"/> </property> </bean> </beans>
設(shè)計(jì)多個組件中的事務(wù)的管理
現(xiàn)在,我們來討論什么是“裝配組件事務(wù)”。您也許注意到了為域中的服務(wù)級組件OrderListManager所指定的各種TX屬性。
為了更好的說明,我們來列出我們的域中的一些非功能性需求(Non-Functional Requirement,NFR):
◆業(yè)務(wù)對象需要保存在一個數(shù)據(jù)庫中(appfuse1)。
◆審計(jì)時要登錄到另一個數(shù)據(jù)庫中(appfuse2),出于安全的考慮,數(shù)據(jù)庫要有防火墻保護(hù)。
◆業(yè)務(wù)組件應(yīng)該可以重用。
◆必須盡一切努力審計(jì)業(yè)務(wù)服務(wù)層的所有活動。
考慮了以上要求之后,我們決定,OrderListManager服務(wù)會將所有的審計(jì)日志調(diào)用委托給已經(jīng)可用的AuditManager組件。
這里值得注意的一點(diǎn)是,由于我們的NFR,我們要將與OrderListManager相關(guān)的對象映射到appfuse1數(shù)據(jù)庫,而將與審計(jì)相關(guān)的對象映射到appfuse2。這樣,無論要審計(jì)什么,OrderListManager組件都會調(diào)用AuditManager組件。我們會看到,OrderListManager組件中的所有方法都應(yīng)該是事務(wù)性的,因?yàn)槲覀兺ㄟ^服務(wù)來創(chuàng)建訂單和線項(xiàng)目(line item)。那么AuditManager組件中的服務(wù)呢?因?yàn)樗龅氖菍徲?jì)跟蹤,我們關(guān)心的是盡可能維持長時間的審計(jì)跟蹤,并針對系統(tǒng)中所有可能的業(yè)務(wù)活動。這就產(chǎn)生了如下的需求:“即使主要的業(yè)務(wù)活動失敗了,也要進(jìn)行審計(jì)跟蹤記錄”。AuditManager組件同樣要有自己的事務(wù),因?yàn)樗才c自己的數(shù)據(jù)庫進(jìn)行交互。Hibernate事務(wù)管理器如下所示:
<beans>
<!-- other code goes here... -->
<bean id="auditManager"class="org.springframework.transaction.
interceptor.TransactionProxyFactoryBean"><property name="transactionManager">
<ref local="transactionManager2"/>
</property>
<property name="target">
<ref local="auditManagerTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="log">
PROPAGATION_REQUIRES_NEW
</prop>
</props>
</property>
</bean>
</beans>
感謝各位的閱讀,以上就是“如何理解Hibernate事務(wù)管理器”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何理解Hibernate事務(wù)管理器這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。