gone

[Java] Spring - 빈 스코프 (Scope) 본문

개발일지(TIL)/Java

[Java] Spring - 빈 스코프 (Scope)

예쁨받는 돌맹이 2024. 11. 1. 16:50

 

Spring Framework에서 Bean Scope는 Bean이 생성되고 유지되는 범위를 결정하는 중요한 개념입니다. Spring에서 지원하는 주요 Bean Scope는 다음과 같습니다:

  1. Singleton: 기본값이며, 컨테이너당 하나의 인스턴스를 생성하여 재사용합니다. 애플리케이션 전반에 걸쳐 동일한 Bean 인스턴스를 사용하고 싶을 때 적합합니다.
  2. Prototype: 요청 시마다 새로운 인스턴스를 생성합니다. 각각의 요청이 고유한 Bean 인스턴스를 필요로 할 때 사용하며, 주로 상태를 가지는 Bean에 적합합니다.
  3. Request: 웹 애플리케이션에서만 사용 가능한 범위로, HTTP 요청당 하나의 Bean 인스턴스가 생성됩니다. 요청 사이에서 상태를 공유하지 않도록 하고자 할 때 유용합니다.
  4. Session: HTTP 세션당 하나의 Bean 인스턴스를 유지합니다. 사용자가 동일한 세션 내에서 Bean 인스턴스를 공유하도록 할 때 유용합니다.
  5. Application: 애플리케이션 범위에 따라 하나의 인스턴스를 생성하여 유지합니다. 서블릿 컨텍스트마다 하나의 Bean 인스턴스를 공유할 때 사용합니다.
  6. WebSocket: WebSocket 세션당 하나의 Bean 인스턴스를 생성하여 유지합니다.

이러한 Scope 설정을 통해 애플리케이션의 요구사항에 맞게 Bean의 생명 주기를 제어할 수 있습니다.

 


- 기본 빈의 생성

같은 주소를 가르키지만

 

- Scope("prototype") 을 사용함으로써 다른 주소값을 가르킨다는것을 알 수 있다.

 


참고 : https://docs.spring.io/spring-framework/reference/core/beans/factory-scopes.html

'개발일지(TIL) > Java' 카테고리의 다른 글

[Java] 제네릭 타입  (0) 2025.02.02