표 4-1은 스프링 컨테이너가 다루는 빈 스코프를 보여준다. 이들 스코프는 bean 태그(XML 컨텍스트)의 속성 또는 애너테이션이나 자바 설정 클래스를 사용하는 경우 @Scope 애너테이션으로 정의할 수 있다.
▼ 표 4-1 빈 스코프
스코프 |
정의 |
singleton |
스프링 컨테이너가 단일 인스턴스를 리턴한다. 이 스코프가 기본값이다. |
prototype |
스프링 컨테이너가 요청을 받을 때마다 새로운 인스턴스를 생성한다. |
request |
스프링 컨테이너가 각각의 HTTP 요청에 대응하여 새로운 인스턴스를 리턴한다. 이 스코프는 웹 컨텍스트에서 사용된다. |
session |
스프링 컨테이너가 HTTP 세션에 대응하여 새로운 인스턴스를 리턴한다. 이 스코프는 웹 컨텍스트에서 사용된다. |
globalSession |
스프링 컨테이너가 글로벌 HTTP 세션마다 단일 인스턴스를 리턴한다. 이 스코프는 웹 컨텍스트에서 사용된다. |
이후 절에서는 이러한 빈 스코프를 사용하는 서로 다른 방법을 보여준다. 스코프는 애플리케이션에 영향을 주므로 올바른 스코프를 선택하도록 주의를 기울여야 한다.