2011-08-17 3 views
0

스프링에서 프로토 타입 범위를 사용하는 방법과 방법을 더 잘 이해하고 싶었습니다. EJB 컨테이너가 요청에 따라 새 인스턴스를 만드는 대신 생성 될 상태 비 저장 세션빈 풀에서 인스턴스를 릴리스하더라도 EJB 환경에서 스테이트리스 세션 빈이 처리되는 방식은 비슷합니다. 그것은 일반적인 J2EE 웹 응용 프로그램 (스프링 MVC/최대 절전 모드 또는 JDBC 템플릿 DB에 프로토 타입 범위의 빈을 사용하는 의미가 않을 때,서비스 외관 및 티어에 스프링을 사용한 프로토 타입 범위 사용

1) 아키텍처 관점에서 :

나는 그것에 대해 몇 가지 기본적인 질문이 접속하다)?

2) EJB 서버가 무 상태 세션 빈을 사용하여 수행하는 풀링과 유사한 프로토 타입 인스턴스 풀을 만드는 개념이 있습니까?

3) 서비스 외관 (EJB의 Session Facade와 유사 함)을 프로토 타입 범위로 만들어야하며 웹 계층에서 오는 동시 요청을 처리하는 데 도움이됩니까? 그리고 생성 된 인스턴스의 수를 제어하려면 어떻게해야합니까? (관리 가능한 특정 수로 제한하고, 풀 수있는 제한이 있습니까?)

답변

1

서비스가 비 상태라고 가정 할 때 서비스에 대한 싱글 톤을 원할 수 있습니다. 그렇게하면 각 서비스의 인스턴스가 하나 뿐이며 상태가 없으므로 스레드 세이프가됩니다.

요청 작업 (예 : 스트럿)에서 프로토 타입을 원할 경우 각 요청을 처리하기 위해 새 개체가 만들어집니다. 이러한 프로토 타입은 싱글 톤 서비스에 연결할 수 있습니다. documentation에서

:

비 싱글 새로운 빈 인스턴스의 생성 특정 빈에 대한 요청이 이루어질 때마다 콩 전개 결과 프로토 범위. 즉, bean이 다른 bean에 주입되거나 은 컨테이너에서 getBean() 메소드 호출을 통해 요청합니다. 규칙으로 모든 상태 유지빈에 대해 프로토 타입 범위를 사용하고 무 상태 빈에 대해 단일 범위 범위를 사용하십시오.