zoukankan      html  css  js  c++  java
  • EJB之Local与Remote

    EJB接口之Local与Remote

    发布EJB时,可以选择每个接口的访问方式:本地访问或远程访问。顾名思义,本地访问就是指调用者在与EJB同一台机器(JVM)中访问EJB,否则就是远程访问了。在一个EJB中,Remote与Local能够同时使用,但是需要配置各自的value属性,且一个接口只能用一种注解标注

    Local 接口


    • 注解为”@Local”的接口称为本地接口(或者@Local和@Remote都不存在时,默认为Local接口)。
    • 由于在同一个JVM中运行,调用者调用EJB时,直接查找地址访问EJB,快速。
    • 访问的是服务端的EJB本身。
    • 若需要传入对象做参数,对象可以不用实现序列化接口。
    • 常用于同一个EJB中 Session Bean 和 Entity Bean 之间的相互调用

    Remote 接口


    • 注解为”@Remote”的接口称为本地接口
    • 以RMI(Remote Method Invocation 远程方法调用)的方式实现调用,参考链接
    • 访问的是EJB的拷贝。
    • 若需要传入对象做参数,对象必须实现序列化接口。
    • 常用于 servlet/jsp 或 Java 应用客户端的调用。

    使用总结

    1. 如果你的 EJB 客户与 EJB 处于同一个JVM环境中时,你可以只生成 local 类型接口(包括EJBHome 与EJBObject),如果你需要在与EJB容器不同的JVM环境中调用你的EJB的话,你必须生成Remote类型的接口(包括EJBHome 与 EJBObject);
    2. 在一般情况下建议两种类型的接口都生成。尤其是Session Bean,Entity Bean,可以只生成local类型的接口,如果想远程调用你的Entity Bean一般用Session Bean做代理
    3. 如果你不是远程调用EJB的话,使用EJB时建议调用local接口,这样效率高,因为远程调用就意味着建立网络连接,效率必然不如local调用。

    generated by haroopad

  • 相关阅读:
    [luoguP1196] 银河英雄传说(并查集)
    [luoguP1111] 修复公路(并查集)
    [luoguP2387] 魔法森林(LCT + 并查集)
    [BZOJ2594] [Wc2006]水管局长数据加强版(LCT + kruskal + 离线)
    [luoguP2045] 方格取数加强版(最小费用最大流)
    [BZOJ2843] 极地旅行社(LCT)
    [luoguP3690] 【模板】Link Cut Tree
    [luoguP3203][HNOI2010]BOUNCE 弹飞绵羊(LCT)
    [luoguP1901] 发射站(单调栈)
    codeforces Round#381 div2
  • 原文地址:https://www.cnblogs.com/wcb-xtu/p/5373835.html
Copyright © 2011-2022 走看看