Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.71 KB

빈+스코프.md

File metadata and controls

36 lines (29 loc) · 1.71 KB

빈 스코프

빈이 존재할 수 있는 범위

싱클톤 빈 (Singleton Bean)

  • 스프링 빈은 기본적으로 싱글톤
  • 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프
  • 스프링 컨테이너당 하나의 인스턴스 빈만 생성
  • 컨테이너가 제공하는 모든 빈의 인스턴스는 항상 동일
  • 컨테이너가 항상 새로운 인스턴스를 반환하게 만들고 싶을 경우 scope를 prototype으로 설정해야 함
  • @Scope(value="singleton")

프로토타입 (Prototype)

  • 컨테이너에 빈을 요청할 때마다 새로운 인스턴스 생성
  • 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프
  • @Scope(value="prototype")

Page

  • 페이지 내에서 지역변수처럼 사용
  • EL 표현법 등으로 표현

Request

  • HTTP Request 별로 새로운 인스턴스 생성
  • 웹 요청이 들어오고 나갈 때까지 유지되는 스코프
  • 애플리케이션 코드에서 생성한 정보를 프레임워크 레벨의 서비스나 인터셉터 등에 전달하는 것
  • @Scope(value="request")

Session

  • HTTP Session 별로 새로운 인스턴스 생성
  • 웹 세션이 생성되고 종료될 때까지 유지되는 스코프
  • @Scope(value="session")

Application

  • Servlet Context와 같은 범위로 유지되는 스코프
  • @Scope(value="application")

참고자료: https://catsbi.oopy.io/b2de2693-fd8c-46e3-908a-188b3dd961f3, https://gunju-ko.github.io/toby-spring/2019/04/15/프로토타입과-스코프.html, https://velog.io/@kir3i/섹션-9.-프로토타입-스코프-싱글톤-빈과-함께-사용-시-문제점