像正常一样实例化 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 注释。该容器将注入和管理您的实例。
容器将创建一个实例池,并在请求之间进行管理,这是一个很好的做法!它不会为每个请求创建一个新实例)
我正在开发 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 注释。该容器将注入和管理您的实例。 容器将创建一个实例池,并在请求之间进行管理,这是一个很好的做法!它不会为每个请求创建一个新实例)