2015-04-25 40 views
0

我正在理解ejb3和JTA關係。 JEE應用服務器可以不用實現EJB3來實現JTA嗎? 如果我的代碼在JBoss 7上運行,那麼使用JTA和JPA(沒有ejb註釋)註釋來處理事務是不夠的?瞭解ejb3和JTA關係

回答

0

是的,應用程序服務器可以在沒有EJB的情況下實現JTA。是的,如果您的應用程序服務器只需要事務,那麼EJB中的容器管理事務支持可能不足以引起足夠的理由來使用EJB編程模型,特別是如果您有權訪問支持@Transactional註釋的應用程序服務器。

EJB編程模型是各種不同技術的組合,隨着時間的推移,各種功能被拆分出來,因此可以在沒有整個EJB編程模型的情況下使用它們(例如,用於容器管理的@Transactional事務或JSR 236對EJB定時器的某些用途)或正在逐步淘汰(例如,實體bean被JPA替代,或者遠程EJB在行業轉向REST時不那麼重要)。作爲一名應用程序開發人員,您必須嘗試在使用編程模型之間找到一個最佳位置,這樣可以提高工作效率,而無需使用太多的編程模型,只能在大型/單片應用程序服務器上運行,而且開銷很大。如果您因爲其他原因需要EJB,那麼使用它的容器管理事務可能是有意義的,但是如果您不需要,那麼它可能不會。

+0

恐怕EJB是JEE規範的一部分,所以沒有JEE兼容的應用程序服務器,它只實現JTA。 –

+0

@AndreiI我打算突出顯示像WebSphere Application Server Liberty概要文件這樣的服務器,它可以使用CDI'@ Transactional'運行,但不包含EJB。我編輯了答案,試圖消除歧義。 –