본문 바로가기

SpringFramework Core - I. IoC 컨테이너/5. Bean Scopes

5.4.2. 요청 scope

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-scopes-request

 

 

bean 정의에 대한 다음 XML 설정을 보자.

<bean id="loginAction" class="com.something.LoginAction" scope="request" />

스프링 컨테이너는 각각의 HTTP 요청에 대해 LoginAction bean의 새로운 인스턴스를 만들어낸다. 즉, loginAction bean은 HTTP 요청 레벨로 scope가 설정된 것이다. 생성된 bean의 내부 상태에 대해서는 바꾸고 싶은 만큼 바꿀 수 있다. 왜냐하면 같은 loginAction bean의 정의를 이용해 생성된 다른 인스턴스들은 자신의 상태에서는 이 변화를 알아채지 못하기 때문이다. 그들은 개별 요청에 따라 구분된다. 요청의 프로세스가 완료되면 요청 scope인 bean은 버려진다.

 

어노테이션이나 자바 설정 기반의 컴포넌트를 사용한다면, @RequestScope 어노테이션이 요청 scope에 컴포넌트를 할당해줄 것이다. 다음 예시는 그 방법을 보여준다.

@RequestScope
@Component
public class LoginAction {
    // ...
}