像普通类一样实例化ejb

时间:2015-01-16 12:57:35

标签: java ejb

我正在开发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类的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

您是否理解拥有EJB与普通POJO相比意味着什么?

答案 2 :(得分:1)

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