我正在开发Java Web应用程序。
我有这堂课:
@Stateless
public class A {
void makeSomething();
}
现在我在另一个类中调用这个类(我有两种方法):
@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应用程序有很多请求。在并发世界中,实例化A类的最佳方式是什么?
答案 0 :(得分:2)
最好的方法是使用@EJB注释。容器将注入并管理您的实例。 容器将创建一个实例池,并在请求之间进行管理,这是一个很好的做法!它不会为每个请求创建一个新实例)
答案 1 :(得分:1)
这不是并发问题。如果它是EJB,那么使用构造函数实例化它是没有意义的。如果您打算这样做,请将其作为常规POJO。
您是否理解拥有EJB与普通POJO相比意味着什么?
答案 2 :(得分:1)
如果您的类位于EJB bean中,它将由EJB容器管理
虽然您不应该通过调用它的构造函数手动创建它,但您应该让容器执行bean的实例化。这是你应该通过@EJB
注释注入它的方式。