7.5. 컨텍스트 및 범위

컨텍스트(Contexts and Dependency Injection)는 특정 범위와 연결된 빈 인스턴스를 보유하는 스토리지 영역입니다.

범위는 빈과 컨텍스트 간의 링크입니다. 범위/컨텍스트 조합은 특정 라이프사이클을 가질 수 있습니다. 몇 가지 사전 정의된 범위가 존재하며 고유한 범위를 만들 수 있습니다. 미리 정의된 범위의 예로는 @RequestScoped,@SessionScoped, @ConversationScope 가 있습니다.

표 7.1. 사용 가능한 범위

범위설명

@Depend

빈은 참조를 포함하는 빈의 라이프사이클에 바인딩됩니다. 주입된 빈의 기본 범위는 @Dependent 입니다.

@ApplicationScoped

빈은 애플리케이션의 라이프사이클에 바인딩됩니다.

@RequestScoped

빈은 요청의 라이프사이클에 바인딩됩니다.

@SessionScoped

빈은 세션의 라이프사이클에 바인딩됩니다.

@ConversationScoped

빈은 대화의 라이프사이클에 바인딩됩니다. 대화 범위는 요청과 세션 길이 사이의이며 애플리케이션에 의해 제어됩니다.

사용자 지정 범위

위의 컨텍스트가 요구 사항을 충족하지 않으면 사용자 지정 범위를 정의할 수 있습니다.