我们正在使用 PrimeFaces(演示)、EJB 3.1(业务)和 JPA(持久性)在 JSF 2.0 中开发 Java EE Web 应用程序。
我们希望使每一层都独立,以便将来任何其他想要访问我们的应用程序的应用程序都应该能够轻松地访问我们的应用程序。
所以我们计划将我们的 EJB 公开为 Web 服务调用。
我们发现我们的表示层看起来是紧密耦合的,其中模型、控制器和视图作为一个框架在一起。
我们想知道如何将模型和控制器公开为单独的服务,以便任何外部视图都可以轻松访问它们。
我们正在使用 PrimeFaces(演示)、EJB 3.1(业务)和 JPA(持久性)在 JSF 2.0 中开发 Java EE Web 应用程序。
我们希望使每一层都独立,以便将来任何其他想要访问我们的应用程序的应用程序都应该能够轻松地访问我们的应用程序。
所以我们计划将我们的 EJB 公开为 Web 服务调用。
我们发现我们的表示层看起来是紧密耦合的,其中模型、控制器和视图作为一个框架在一起。
我们想知道如何将模型和控制器公开为单独的服务,以便任何外部视图都可以轻松访问它们。
您不能在 JSF 中单独公开控制器。框架提供的是 Faces Servlet。
也不要直接暴露模型。在 JSF 术语中,模型的入口是支持 bean。这种类型的 bean 是特定于页面的,不应该被重用。
支持 bean 不应包含业务逻辑。相反,它只是委托给一个服务 bean,它通常是一个 EJB。
他们使用的那些服务和(JPA)实体应该被设计成可以被重用。这可以在稍后阶段通过 JAX-RS、JAX-WS、Remote EJB 完成,或者只需将这些 bean 复制到 jar 并将它们包含在另一个应用程序中即可。
现在只需确保您的服务不依赖于任何 UI 包,并且它们不会尝试执行任何 UI 工作。当您拥有其他应用程序时,担心重用它们的确切方式。