"stateless EJB 필드"는 Stateless EJB에 대한 참조입니다.
그러나 EJB 인스턴스를 직접 참조하지는 않습니다. 참조 된 객체는 EJB에 대한 proxy
입니다.
해당 프록시를 통해 메소드를 호출 할 때마다 컨테이너는 EJB 인스턴스에 대한 참조를 작성하거나 가져 와서 호출합니다. 컨테이너는 EJB 인스턴스를 빠르게 수집 할 수 있도록 이러한 EJB 인스턴스 풀을 가질 수 있습니다. 이것은 결국 Stateless
이기 때문에 가능합니다.
이있는 경우 :
public class Foo {
@EJB
private Bar myStatelessEJB;
public void doSomething() {
myStatelessEJB.eat();
myStatelessEJB.something();
}
}
그런 다음
myStatelessEJB
의 각 호출은
Bar
의 완전히 다른 인스턴스를 호출 할 수 있습니다.
따라서 EJB에 대한 참조를 얼마나 오래 유지하는지는 아무런 차이가 없습니다. 컨테이너는 호출간에 완전히 잊어 버릴 수도 있고 다른 클라이언트를 위해 풀로 반환 할 수도 있습니다.
흥미 롭습니다. 예를 들어, 싱글 톤에 대한 참조를 유지하는 것은 내가 생각한 그런 끔찍한 관행이 아닙니까? – Faerindel
무엇? [@ javax.ejb.Singleton] (https://javaee.github.io/javaee-spec/javadocs/javax/ejb/Singleton.html)? 너는 이것들에 대해 묻지 않았다. –
아니, 나는 보통의 것을 의미한다. – Faerindel