gpt4 book ai didi

java - EJB 3 静态引用还是运行时查找?

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:53 24 4
gpt4 key购买 nike

我正在从 POJO 调用 EJB 进行 JNDI 查找。我想知道什么是更好的查找方法以及每种方法的含义是什么?我有两个选择

  1. 在 POJO 的静态 block 中,对 EJB 进行静态引用,并在所有对象中使用该静态引用

     public class MyPojo
    {
    static {
    MyEJB ejb = (MyEJB) EJBServiceLocatorUtil.fetchService(IAppConstants.JNDI_LOCAL);
    }
    .....
    }
  2. 每次创建新对象时进行 JNDI 查找

    public class MyPojo
    {
    public MyPojo(){
    MyEJB ejb = (MyEJB) EJBServiceLocatorUtil.fetchService(IAppConstants.JNDI_LOCAL);
    }
    }

最佳答案

如果 EJB 尚未部署或者 JNDI 上下文不可用,选项 1 可能会失败。从一个应用服务器到另一应用服务器可能存在可移植性问题。

选项 2 可能会很耗时(JNDI 查找),具体取决于实例化 MyPojo 的频率。

另一个选择可能是使用 Bill Plugh 的单例模式的实现:http://en.wikipedia.org/wiki/Singleton_pattern#The_solution_of_Bill_Pugh其中 Singleton 是您的 EJB。 JNDI 查找仅执行一次并且是惰性的(在第一次调用时)。

请注意,所有这些选项仅对无状态 session Bean 有效。

关于java - EJB 3 静态引用还是运行时查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556643/

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