2015-01-16 3 views
1

저는 Java 웹 애플리케이션을 개발 중입니다.정상 클래스처럼 ejb를 인스턴스화하십시오.

내가이 클래스가 있습니다

@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(); 

} 

내 웹 응용 프로그램 요청을 많이하고있다. 동시성 세계에서 클래스 A를 인스턴스화하는 가장 좋은 방법은 무엇입니까?

답변

2

가장 좋은 방법은 @EJB 주석을 사용하는 것입니다. 컨테이너가 인스턴스를 삽입하고 관리합니다. 컨테이너는 인스턴스 풀을 만들고 요청간에 관리합니다. 좋은 연습입니다! 각 요청에 대해 새 인스턴스를 만들지 않습니다.)

1

동시성의 문제가 아닙니다. 그것이 EJB라면, 생성자로 인스턴스를 생성하는 것은 의미가 없습니다. 그렇게 할 계획이라면 보통 POJO로 만드십시오.

일반적인 POJO가 아닌 EJB를 갖는 것이 무슨 뜻인지 알고 있습니까?

1

클래스가 EJB bean에 있으면 EJB 컨테이너에서 관리합니다.
생성자를 호출하여 손으로 생성해서는 안되지만 컨테이너가 bean의 인스턴스화를 수행하도록해야합니다. 그렇게하면 @EJB 주석을 통해 삽입해야합니다.

관련 문제