2011-12-23 4 views
0

EJB 3에서 데이터 처리를위한 작은 프레임 워크를 구축 중입니다.
데이터 소스에서 추상화 한 Entity Access Object 티어가 있습니다. 이제 쿼리 엔티티에 올바른 bean을 줄 어떤 종류의 팩토리가 필요합니다.EJB3. JNDI 조회 작동 방법

JNDI 로컬 빈 인터페이스를 통해 다른 로컬 bean에 매개 변수로 전달하는 것이 안전합니까? 이 로컬 인터페이스의 각 메소드 호출은 동일한 bean으로 처리 될 것인가 아니면 각각의 호출은 @EJB 경우와 같이 다른 상태없는 빈으로 전달 될 것입니까?

답변

1

JNDI를 사용하면 동일한 EJB 인스턴스를 제공한다는 보장이 없으므로 @EJB 또는 @Inject을 사용하는 종속성 삽입과 동일합니다. @EJB과 JNDI 조회 사이의 유일한 차이점은 SFSB입니다. 이 경우 컨테이너는 JNDI 조회를 사용할 때마다 새 SFSB 인스턴스를 제공해야합니다.

그러나 제 생각에는 EJB 3.x 및 종속성 주입 시대에서 @EJB/@Inject 주석을 더 쉽게 이해할 수 있습니다. 객체 참조를 전달할 필요가 없으며 @EJB을 사용하여 각 EJB의 종속성 (EJB 공동 작업자)을 정의하면됩니다.

+0

예. DI는 매우 유용하지만 런타임 서비스 외관을 구현하는 방법에 대해서는 잘 모른다. 어떤 방법이 있습니까? –

+0

따라서 주어진 EJB에 액세스하기 위해 런타임 제공 값 (즉, 메소드 매개 변수)을 사용하고 있습니까? –

+0

예. 나는 같은 인터페이스를 가진 두개의 다른 상태없는 빈을 가지고있다. 그리고 사용자 작업에 따라 요청을 처리하기 위해 그 중 하나를 선택해야합니다. –