gpt4 book ai didi

java - 什么是 EJB 中的本地/远程和无接口(interface) View ?

转载 作者:IT老高 更新时间:2023-10-28 11:48:18 25 4
gpt4 key购买 nike

我试图了解我们在 EJB 中需要不同客户端 View 的目的和原因。有人可以尝试解释吗?

最佳答案

远程客户端 View

当您的 EJB 及其客户端处于分布式环境中时 - 这意味着 EJB 和客户端将驻留在不同的 Java 虚拟机上。示例:托管在 WebSphere Application Server 上的 EJB 和使用托管在 Tomcat 服务器上的 EJB API 的 Servlet。

本地客户端 View

仅当保证其他企业 bean 或客户端将仅在单个 JVM 中寻址该 bean 时。例如,EJB 以及部署在同一 WebSphere 服务器上的 Servlet。

无界面 View

与本地客户端 View 几乎相同,但有区别。在这种情况下,您的 bean 类不需要实现客户端 View 接口(interface)。 bean 类的所有公共(public)方法都会自动暴露给调用者。无接口(interface) View 总是获取 EJB 引用——就像本地或远程 View 一样——通过注入(inject)或 JNDI 查找;但是,EJB 引用的 Java 类型是 bean 类类型而不是本地接口(interface)的类型。这是作为 Java EE6 的一部分引入的便利。

本地客户端 View 和无界面 View 的区别

在无接口(interface) View 的情况下,客户端和目标bean必须打包在同一个应用程序(EAR)中。在本地 View 的情况下,客户端可以封装在与企业应用程序不同的应用程序中。因此,这在细粒度组件方面提供了更大的灵 active 。

根据您的 API 使用场景,您可以使用本地客户端 View 与无界面 View 。无界面 View 很有可能在未来的规范中获得灵活的功能。

原因

从历史上看,希望使用 EJB 服务的客户端应该“查找”容器上的 bean(具有某些初始上下文)。这是因为所有调用都是通过容器提供的特殊 EJB 引用(代理)进行的。这允许容器提供所有额外的 bean 服务,例如池、容器管理的事务等。因此,客户端不能使用 new 运算符显式实例化 EJB。客户端 View 是通过客户端可以访问的某些接口(interface)提供的。服务器端的代理实现就是基于这些接口(interface)完成的。如上所述,定义了不同的客户端 View 以适应不同的部署场景。

关于java - 什么是 EJB 中的本地/远程和无接口(interface) View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com