3.4. Bean scopes

설정 파일에서 bean들을 정의하고 다른 bean들 과의 종속성을 정의 하는 것 말고도 각각 bean들의 scope을 설정해 줄 수 있습니다.

Scope Description

singleton

Spring Ioc 컨테이너 내에서 bean 정의 당 하나의 객체

prototype

매번 같은 Type의 새로운의 객체

request

Http request 당 하나 씩, web-aware ApplicationContext

session

Http session 당 하나 씩, web-aware ApplicationCotext

global session

Scopes a single bean definition to the lifecycle of a
global HTTP Session. Typically
only valid when used in a portlet context. Only valid in the
context of a web-aware Spring
ApplicationContext.


3.4.1. The singleton scope

Container 당 하나의 객체라는 의미에서 singleton 입니다.[footnote]JVM의 classloader당 하나의 객체라는 의미의 GoF의 Singleton과는 다릅니다.[/footnote]

3.4.2. The prototype scope

bean을 요청 할 때[footnote]DI 되거나 getBean(String)에 의해 호출 될 때[/footnote] 마다 새로운 객체를 만들어 줍니다.

Singleton & Prototype

3.4.3. The other scopes

request, session, grobalSession은 web-based ApplicationContext에서 사용할 수 있습니다.[footnote]WebApplicationContext 인터페이스를 구현한 클래스들을 말하는 것이 아닐지 생각해 봤습니다.[/footnote]

3.4.4. Custom scopes

새로운 Scope을 만들거나 기존의 Scope을 변경할 수 있습니다.