Stateful 세션 Bean은 다음과 같이 정의됩니다.
Stateful Session Beans 객체의 상태는 인스턴스 변수의 값으로 구성됩니다. Stateful 세션 Bean에서 인스턴스 변수는 고유 한 클라이언트 Bean 세션의 상태를 나타냅니다. 클라이언트가 Bean과 상호 작용 ( "대화")하기 때문에이 상태를 종종 대화 상태라고합니다.
상태 비 저장 세션 Bean은 다음과 같이 정의됩니다.
Stateless Session Beans Stateless 세션 Bean은 클라이언트와의 대화 상태를 유지하지 않습니다. 클라이언트가 stateless bean의 메소드를 호출 할 때 bean의 인스턴스 변수는 해당 클라이언트에 특정한 상태를 포함 할 수 있지만 호출 기간 동안 만 가능합니다. 메서드가 완료되면 클라이언트 별 상태가 유지되지 않아야합니다. 그러나 클라이언트는 풀링 된 상태 비 저장 빈에서 인스턴스 변수의 상태를 변경할 수 있으며이 상태는 풀링 된 상태 비 저장 빈의 다음 호출로 유지됩니다. 메소드 호출 동안을 제외하고 상태 비 저장 빈의 모든 인스턴스는 동일하므로 EJB 컨테이너가 모든 클라이언트에 인스턴스를 할당 할 수 있습니다. 즉, Stateless Session Bean의 상태는 모든 클라이언트에 적용되어야합니다.
Stateful 세션 Bean에 비해 Stateless 세션 Bean을 사용하는 이점은 다음과 같습니다.
Stateless Session Bean은 여러 클라이언트를 지원할 수 있기 때문에 많은 클라이언트가 필요한 애플리케이션에 더 나은 확장 성을 제공 할 수 있습니다. 일반적으로 애플리케이션은 동일한 수의 클라이언트를 지원하기 위해 Stateful 세션 Bean보다 적은 Stateless 세션 Bean을 필요로합니다.
그래서 떠오르는 질문은 언제 Stateful Session Bean을 사용해야 하는가입니다. 이 문제에 대한 순진한 이해를 위해 가능한 한 stateless 세션 빈을 사용해야합니다.
Stateful Session Bean을 사용해야하는 후보는 무엇입니까? 좋은 예가 있습니까?