如果需求要求,爲不同模塊使用無狀態和有狀態會話bean是否是一種好方法?我們可以在J2EE應用程序中使用無狀態和有狀態會話bean嗎?
2
A
回答
2
當然。您應該儘可能使用無狀態(它們更快,消耗更少的內存,因爲它們不需要序列化和反序列化)並且僅在需要時纔有狀態。因此,擁有(例如)8個無狀態和2個有狀態的bean是完全可以的
8
你的問題很模糊,但是你似乎基本上會問是否可以使用無狀態或有狀態會話bean。
無狀態會話bean(SLSB)確實易於使用。幾乎沒有什麼可配置的,並且它們非常適合公開服務。
有狀態會話bean(SFSB)表面上類似於SLSB。但是,它們是有狀態的,這使得它們的編程模型不同,而且更難於使用。例如,您需要配置一個與您的負載匹配的池大小,設置超時參數,並且不要忘記正確處理它們。除非您確切知道爲什麼會使用它們而不是另一種較輕的方法(例如
HttpSession
或數據庫),並且只有在您具有良好的EJB模型命令的情況下,人們通常會對它提出建議。更多關於Stateful EJBs in web app的信息。
但是SLSB和SFSB當然可以在應用程序中一起使用。這項技術自十年以來就已有大量的信息可供使用。然而,鼓勵儘可能使您的設計成爲無狀態。