2012-05-08 63 views
6

我已經開始使用Spring的@Transactional註釋,它爲管理事務提供了很多便利。然而,在我們的代碼中使用這個註釋現在使我們依賴於Spring。我知道JPA類型的東西有一個javax persistence包,我們可以用JPA標註各種代碼,但由於它們都來自javax.persistence,我們的代碼不依賴於任何特定的實現或ORM。JTA和Spring之間的差異@Transactional註釋

我想我的問題是如果有任何類似的註釋事務的東西。我發現了一個javax jta包,但我不確定Spring是否可以實現任何通用註釋。基本上我只是想知道是否有任何種類的通用類javax註釋,我們可以將其放在管理事務功能的方法上,以便我們不依賴於Spring。

+0

您正在使用哪個版本的JavaEE? – skaffman

+0

@skaffman Java 7是首選,但Java 6可以工作。 – dnc253

+0

我說的是JavaEE版本,不是JavaSE版本。您的問題涉及JavaEE API的一部分,這與高度依賴於版本有關。 – skaffman

回答

9

我不認爲JavaEE 6提供像Spring這樣的事務劃分註釋。我認爲最接近的模擬是使用EJB無狀態會話bean,它本質上是事務性的,但沒有明確界定(有人請糾正我,如果我錯了)。

這是您選擇將您的代碼連接到哪個API的呼叫。使用Spring的@Transactional的好處在於,您獨立於正在使用的特定事務API(@Transactional可以與JTA,JPA,Hibernate或原始JDBC事務一起工作,無需更改代碼)。但是,當然,你跟春天有關係。

如果註釋的樣式是你想要的,那麼除非你想完全支持JavaEE並使用EJB 3.x風格的註釋,否則我看不到Spring的其他選擇。

+0

好吧,需要了解更多信息。謝謝。 – dnc253