@EJB 주석을 사용하는 동안 가능한 성능 문제와 관련된 질문이 있습니다. 다음 시나리오를 상상해보십시오.@EJB 삽입 대 조회 - 성능 문제
public class MyBean1 implements MyBean1Remote{
@EJB
private MyBean2Remote myBean2;
@EJB
private MyBean2Remote myBean3;
...
@EJB
private MyBean20Remote myBean20;
}
다른 bean에 많은 종속성이있는 bean이 있습니다. EJB 스펙에 따르면 MyBean1Remote를 다른 Bean에 주입하고자 할 때 컨테이너는 풀에서 필요한 모든 의존성을 가져와 MyBean1Remote에 주입 한 다음 MyBean1Remote 스텁에 대한 참조를 주입해야한다.
지금 예약 20 EJB를 (myBean1과 19 개 종속)
public class MyAnotherBean implement MyAnotherRemote{
@EJB
private MyBean1Remote myBean1
}
수 있도록 시나리오 컨테이너에 필요한 다음의 대부분의 경우 우리는 myBean1의 각 사업 방법 당 한 하나의 의존성을 사용하는 것을 말한다. 결과적으로 우리가 빈을 삽입하기를 원할 때마다 우리는 컨테이너가 많은 불필요한 EJB를 확보하도록 강제합니다. 또한 원격 Bean에서 작업 중이라고 가정하므로 컨테이너는 종속 Bean을 주입하기 전에 일부로드 균형 알고리즘을 수행해야합니다.
질문 :
는성능 문제를 통해 그 원인 불필요한 자원 예약 및 더 클러스터 환경에서 작동하지 않을까요 동안?
아마 우리가 정말로 필요할 때이 접근법으로 특정 EJB를 요청할 것이므로 좋은 ServiceLocator가 더 나은 해결책 일 수 있습니까?
+1 예, 이것도 좋은 대답입니다. 인스턴스 자체는 주입되지 않지만 프록시는 있습니다. 그 다음으로, 내 대답과 마찬가지로 풀의 실제 인스턴스에는 이미 모든 종속성이 해결됩니다. –