2014-03-04 209 views
1

我正在使用JSF Web應用程序。服務層是使用無狀態會話bean開發的。這些無狀態bean使用CDI注入到託管bean。無狀態會話bean事務

我知道要管理無狀態bean中的事務,我可以使用容器管理事務或bean管理事務。無狀態bean中的所有公共方法默認情況下都是容器管理的事務。

所以我的問題是:

這是事務管理無國籍豆首選方法 - 容器管理或Bean管理?

是否建議在服務層同時擁有bean託管和容器管理的事務bean?

是否有可能在單個bean中使用容器管理和bean管理事務?如果可能的話,這是可取的嗎?

請讓我知道你的建議...如果你的事務範圍不跨越一個以上服務層的方法跨越

回答

2

無狀態bean - 容器>託管或bean管理事務管理的首選方法是哪種?

典型和首選的方法是使用CMT。交易管理是應用程序服務器提供的有用服務之一,它簡化了您的開發過程,因此,您應該使用這種方法(也是默認方法),這是當時廣闊的市場。

然而,骨髓移植仍然是必要的,一些特殊情況:

一)當你需要降低交易界限提高性能。

b)當你有一個有狀態的會話bean,並且你需要在多個客戶端調用中保留一個事務。 (很難看出這可能是有用的)。

是否建議在服務層同時擁有bean託管和容器管理的事務bean?

是的,如果某些服務需要上述特殊請求,則可以將兩個bean事務類型用作服務層的一部分。

是否有可能在一個bean中使用容器管理和bean管理事務?如果可能的話,這是可取的嗎?

不,這是不可能的。

0

使用的容器管理事務:理想情況下,你應該有一個事務(容器觸發提交)的一種方法。如果情況並非如此,bean管理的事務應該更實用,讓調用者決定何時提交或回滾。

相關問題