다음 bean 정의에 대한 XML 설정을 보자.
<bean id="userPreferences" class="com.something.UserPreferences" scope="session" />
스프링 컨테이너는 단일한 HTTP 세션의 라이프타임을 위한 새로운 UserPreferences bean 인스턴스를 만들어낸다. 즉, userPreferences bean은 HTTP 세션 레벨에 효과적이다. 요청 bean처럼, 생성된 bean의 내부 상태에 대해서는 바꾸고 싶은 만큼 바꿀 수 있다. 왜냐하면 같은 userPreferences bean의 정의를 이용해 생성된 다른 인스턴스들은 자신의 상태에서는 이 변화를 알아채지 못하기 때문이다. 그들은 개별 요청에 따라 구분되어 있기 때문이다. HTTP 세션이 마침내 종료되면, 그 세션에 특정한 HTTP 세션 bean 역시 버려진다.
어노테이션, 자바 설정 기반의 컴포넌트를 사용할 때는 @SessionScope 어노테이션을 통해 세션 scope에 컴포넌트를 할당할 수 있다.
@SessionScope
@Component
public class UserPreferences {
// ...
}
'SpringFramework Core - I. IoC 컨테이너 > 5. Bean Scopes' 카테고리의 다른 글
5.4.5. 의존성으로서의 Scoped Beans (0) | 2020.03.20 |
---|---|
5.4.4. 애플리케이션 Scope (0) | 2020.03.19 |
5.4.2. 요청 scope (0) | 2020.03.19 |
5.4.1. 웹 초기 설정 (0) | 2020.03.19 |
5.4. 요청, 세션, 애플리케이션 그리고 웹소켓 Scopes (0) | 2020.03.19 |