2013-08-01 66 views
0

我們正在使用PrimeFaces(presentation),EJB 3.1(業務)和JPA(持久性)在JSF 2.0中開發Java EE Web應用程序。Java EE多層架構

我們希望使每個圖層都是獨立的,以便將來任何其他想要訪問我們的應用程序的應用程序都應該能夠輕鬆完成。

因此,我們有一個計劃將我們的EJB公開爲Web服務調用。

我們發現,我們的表示層看起來緊密耦合,其中模型和控制器與視圖在一起作爲框架。

我們想知道如何將模型和控制器作爲單獨的服務公開,以便任何外部視圖都可以輕鬆訪問這些模型和控制器。

回答

2

您不能在JSF中單獨公開控制器。它是由框架提供的Faces Servlet。

不要直接暴露模型。用JSF術語來說,進入模型就是輔助bean。這種類型的bean特定於一個頁面,不應該被重用。

支持bean不應包含業務邏輯。相反,它只是委託給一個服務bean,它通常是一個EJB。

他們使用的這些服務和(JPA)實體應該設計爲可以重用。這可以通過JAX-RS,JAX-WS,遠程EJB在稍後階段完成,也可以通過將這些bean複製到jar並將它們包含在另一個應用程序中來完成。

只要確保您的服務不依賴任何UI包並且他們不嘗試執行任何UI工作。擔心在有其他應用程序時重複使用它們的確切方式。

+0

謝謝Mr.Braun的回覆。你是對的。我們正在考慮制定一個通用模型。它看起來不可能與框架。在數據庫中有很多頻繁更改的情況下,如何使用JPA作爲持久層。 –