像正常一样实例化 ejb class

Instantiate ejb like a normal class

我正在开发 Java Web 应用程序。

我有这个class:

@Stateless
public class A {

void makeSomething();

}

现在我在另一个class中称这个class(我有两种方法):

@Stateless
public class B {

Method 1:

A a =new A();
a.makeSomething();

Method 2:

A a =new A();
a.makeSomething();

or


@EJB 
A a;

Method 1:

a.makeSomething();

Method 2:

a.makeSomething();

 }

我的 Web 应用程序有很多请求。在并发世界中,实例化 class A 的最佳方式是什么?

不是并发的问题。如果它是 EJB,那么用构造函数实例化它就没有意义。如果您打算这样做,请将其设为常规 POJO。

您了解 EJB 相对于普通 POJO 意味着什么吗?

如果您的 class 在 EJB bean 中,它将由 EJB 容器管理。
虽然您不应该通过调用它的构造函数来手动创建它,但您应该让容器执行 bean 的实例化。这就是你应该通过 @EJB 注释注入它的方式。

最好的方法是使用@EJB 注释。该容器将注入和管理您的实例。 容器将创建一个实例池,并在请求之间进行管理,这是一个很好的做法!它不会为每个请求创建一个新实例)