數據集交換是一種活動的安排,這些活動被視為一個單獨的工作單元。無論如何,這些活動要麼結束,要麼不產生任何結果。交換板是rdbms環境下進行應用的重要組成部分,可以保證信息的誠實性和一致性。交換的思想可以通過描述為ACID−的四個關鍵屬性來描述
- 原子性-交換應被視為活動的一個單獨單位,這意味著整個任務的安排要麼是富有成效的,要麼是無效的。
- 一致性-這解決了信息庫的參考可信度的一致性,表中的一種基本鍵,等等
- 隔離-可能同時有許多具有相似信息索引的交換處理。每一次交換都應該與其他交換分離,以防止信息貶值。
- 持久性-一旦交換完成,交換的結果必須非常持久,並且不能因為框架的失敗而從數據集中根除。
真正的RDBMS數據集框架將確保每個交換的四個屬性中的每一個。利用SQL對信息庫進行交換的過於簡化的觀點如下所示
- 使用Start exchange order啟動交換。
- 使用SQL問題執行不同的擦除、更新或附加任務。
- 假設所有的活動都是有效的,在任何情況下執行submit回滾每一個任務。
Spring係統在各種基本交換執行者api的基礎上提供了一個理論層。Spring的交換支持打算通過向pojo添加交換功能來提供與EJB交換不同的選項。彈簧支撐自動和啟示交換板。ejb需要應用服務器,而Spring交換板可以在不需要應用服務器的情況下進行。
本地事務與全局事務
本地事務對於單獨的條件資產(如JDBC關聯)是顯式的,而全局事務可以涵蓋許多基於值的資產(如分散框架中的交換)。
在應用程序部件和資產位於單獨站點的集中計算環境中,本地事務管理人員可以提供幫助,而交換板隻包括在單獨機器上運行的本地信息主管。附近的交易所更容易執行。
在一個分散處理的環境中,每個資產都分布在不同的框架中,需要全局交易板。在這種情況下,應該在社區和世界範圍內與高管進行交流。一個分散的或全球範圍的交換是跨許多框架執行的,它的執行需要在全球範圍的交換、執行者的框架和相關框架的每個相鄰信息監督者之間進行協調。
編程式式與聲明式
春天支持兩種交換板−
- 程序化事務管理-這意味著您需要使用編程輔助來處理交換。這給了你驚人的適應性。然而,這很難跟上。
- 聲明式事務管理:這意味著您將交換執行者與業務代碼分開。您隻需使用注釋或基於xml的安排來處理交換。
聲明式事務管理是最好的自動交換板;但是,它的適應性不如自動交換板,允許您通過代碼控製交換。盡管如此,作為一種橫切關注點、啟示性交換,該板可以用AOP方法模塊化。Spring通過Spring AOP結構支持決定性的交換。
Spring事務抽象
進入Spring交換反射的方式由org.springframework.transaction.PlatformTransactionManager接口所描述,該接口按照以下−
公共接口PlatformTransactionManager {TransactionStatus getTransaction(TransactionDefinition定義);TransactionException扔;TransactionStatus狀態拋出TransactionException;void rollback(TransactionStatus狀態)拋出TransactionException;}