事務語義和狀態滿度在EJB3中被視爲實現細節。 實現可以決定是使用bean還是容器管理的事務。 它可以決定容器管理事務的類型。它可以決定它是滿狀態還是無狀態。EJB3:爲什麼事務語義和狀態性會考慮實現細節?
但從邏輯上講,這些是重要的接口細節。例如:(a)使用bean管理事務的bean不能使用容器管理事務調用bean。 (b)無狀態bean不能調用狀態滿bean。
當提供一個EJB3接口時,你不知道它需要什麼樣的事務語義。同樣,你也不知道它是否是全狀態或無狀態的。 您需要額外的實施細節。例如:文檔。
在運行時,可以動態實例化不同的bean和調用鏈。因此可能會出現無效狀態。現在 - 容器可以捕捉這些情況;但爲什麼要等到運行時?
爲什麼事務語義和狀態滿度要求不是界面的一部分?