2012-05-10 2 views
2
궁금

...의 내가 EJB 3.1이 무 콩 있다고 가정 해 봅시다 :@EJB가 고유 한 ejb 인스턴스로 보장되는 @Stateless Bean?

  1. @Stateless 클래스 1

    @EJB MyUniqueInstanceBean uniqueBean1을;

2.

@Stateless 
Class2 

@EJB MyUniqueInstanceBean uniqueBean2; 

는 uniqueBean1 및 uniqueBean2이 MyUniqueInstanceBean의 유일한 인스턴스 보장이 있습니까?

+1

1. 코드를 형식화하고 필요한 경우 대괄호를 사용하는 것을 잊지 말고 편집하십시오 (MyUniqueInstanceBean이 Class1 및 Class2 안에 삽입되어 있습니까?). 2. 대답은 MyUniqueInstanceBean을 정의한 방법에 달려 있습니다. 명확한 설명을 주신 덕분에 싱글 톤 – perissf

답변

2

MyUniqueInstanceBean이 인 경우 Stateless uniquebean1 및 uniquebean2에 대한 호출이 실제로 동일한 인스턴스에 대한 호출이므로 손에 들지 않습니다. EJB 3.1 사양에서 이것은 다음과 같은 말로 이야기한다 :

무 상태 세션 빈의 모든 인스턴스가 동일하기 때문에, 컨테이너가 어떤 가능한 인스턴스에 대한 클라이언트 호출 방법을 위임 할 수 있습니다. 예를 들어, 컨테이너가 같은 트랜잭션의 동일한 클라이언트에서 요청을 다른 인스턴스로 위임 할 수 있고 컨테이너가 동일한 인스턴스에 여러 트랜잭션의 요청 을 인터리브 할 수 있음을 의미합니다. MyUniqueInstanceBean이 상태 유지경우

, 그것은 그 uniquebean1 보장하고 uniquebean2는 같은 인스턴스를 참조하지 않습니다. 다시 사양에서 :

클라이언트가 종속 주입 또는 JNDI 룩업을 통해 상태 유지 세션 빈 인스턴스에 참조를 취득 할 때 세션 빈 인스턴스의 생명이 시작, 또는 클라이언트가 호출 할 때이 세션 빈의 홈에 방법을 만들 수 인터페이스. 이로 인해 컨테이너는 세션 빈 클래스에서 newInstance를 호출하여 새 세션 bean 인스턴스를 만듭니다.

싱글 세션 빈은 응용 프로그램에 한 번 인스턴스화하는 세션 빈 구성 요소입니다 : 하나 개의 인스턴스 만이 있기 때문에

당신이 싱글를 사용하는 경우, 다음 모두, 같은 인스턴스를 참조 . 컨테이너가 인 가상 머신이 많은 경우, 각 어플리케이션은 각 JVM에 대해 하나의 싱글 톤 인스턴스 인 을 갖습니다.

+0

인 경우에만 대답은 예입니다. 나는 Stateful이 Class1과 Class2의 고유 한 인스턴스를 보장한다고 의심했다. – user899757

+0

두 개의 다른 상태 비 저장 빈을 호출하는 동일한 클라이언트 인 경우 동일한 상태 저장 빈 인스턴스를 두 개의 다른 상태 비 저장 빈에서 사용할 수있는 방법은 무엇입니까? – jch

관련 문제