2013-03-14 74 views
0

我正在尋找Java類設計中的最佳策略。 我使用的是JSF 2.1,基本上我有一個放置訂單並從Web服務檢索的類。Java類設計中的提交事務

  • 我想提交事務或回滾,如果使用 這個類有錯誤。

我可以採取什麼樣的方法來解決這個問題。 我需要使用嵌套類設計嗎? 我至少有15個方法必須協調工作,以確保即使一個失敗,事務也會回滾。 任何指導表示讚賞。

+0

你可以在交易範圍內做到這一點,不管你有什麼樣的類別設計。 – 2013-03-14 18:47:07

回答

0

JSF是一種視圖技術。如果你正在做的事情,它不應該參與交易。

JSF視圖應該與控制器通信。控制者應該有一個對服務的引用,該服務是知道工作單位和交易的對象。該服務編排模型對象,持久對象和其他服務以滿足用例。

獲取數據庫連接和提交或回滾事務的邏輯屬於該服務。

如果你使用面向方面的編程,很容易做到。 (這就是Spring如何做到的。)

view--->controller--->service--+--->persistence 
           | 
           +--->model 

它被稱爲分層設計。當我繪製它們時,依賴關係應該遵循箭頭。模型和持久性不知道服務,控制器或視圖。

+0

對不起,我應該提到我使用EJB而不是Spring。所以Roman C提到的幫助我。我沒有搜索其他的堆棧流文章,我發現這個有用的鏈接關於EJB。 http://entjavastuff.blogspot.cz/search/label/EJB3 – Sunny 2013-03-14 19:10:03

+0

EJB通過方面和註釋來完成它,就像Spring一樣。毫不奇怪 - 羅德約翰遜在EJB3委員會。他們從Spring學到很多東西。 – duffymo 2013-03-14 19:26:29

+0

我必須給你正確的答案,因爲你的答案是正確的。感謝duffymo。 – Sunny 2013-03-14 19:29:58