더북(TheBook)

3.5.6.2 빈 스코프 구현하기

스프링 빈을 정의할 때 싱글턴과 프로토타입 스코프 외에도 특정 목적에 맞는 다른 스코프가 존재합니다. 사용자 정의 스코프를 구현해 스프링의 ApplicationContext에 등록할 수도 있습니다. 다음은 스프링 4 버전에서 지원하는 빈 스코프입니다.

싱글턴(Singleton): 기본 싱글턴 스코프. 스프링 IoC 컨테이너당 하나의 객체만 생성됩니다.

프로토타입(Prototype): 애플리케이션에서 요청할 때마다 스프링이 새 인스턴스를 생성합니다.

요청(Request): 웹 애플리케이션에서 사용합니다. 웹 애플리케이션에서 스프링 MVC를 사용할 때 요청 스코프를 가진 빈의 인스턴스는 모든 HTTP 요청이 있을 때마다 생성되고 요청 처리가 완료되면 소멸됩니다.

세션(Session): 웹 애플리케이션에서 사용합니다. 웹 애플리케이션에서 스프링 MVC를 사용할 때 세션 스코프를 가진 빈의 인스턴스는 모든 HTTP 세션이 시작되면 생성되고 세션이 끝나면 소멸됩니다.

글로벌 세션(Global session): 포틀릿 기반 웹 애플리케이션에서 사용합니다. 글로벌 세션 스코프 빈은 동일한 스프링 MVC 기반 포털 애플리케이션 내의 모든 포틀릿간에 공유될 수 있습니다.

스레드(Thread): 새로운 스레드에 의해 요청될 때 스프링에 의해 새로운 빈 인스턴스가 생성되고, 동일한 스레드에 대해서는 같은 빈 인스턴스가 반환됩니다. 이 스코프는 기본적으로 등록되지 않습니다.

사용자 정의(Custom): org.springframework.beans.factory.config.Scope 인터페이스를 구현하고 스프링 구성에 사용자 정의 스코프를 등록(XML의 경우 org.springframework.bean.factory.config.CustomScopeConfigurer 클래스 사용)해 생성할 수 있는 사용자 정의 빈 스코프입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.