2013-08-01 34 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作为持久层。 –