포스트

16. 빈 스코프

16. 빈 스코프

빈 스코프

빈 스코프란?

지금까지 스프링 컨테이너 라이프 사이클 > 빈 라이프 사이클 포함 관계였다.

하지만 스프링은 다양한 스코프 또한 지원한다. (스코프란 생명 수명이다.)

스프링이 지원하는 빈 스코프

  • 싱글톤 : 기본 스코프, 스프링 컨테이너와 함께한다.
  • 프로토 타입 : 스프링 컨테이너가 생성과 의존관계 주입까지만 관여한다. 추후에는 관리하지 않는다.

웹 관련 스코프

  • request : 하나의 요청에 관해서 들어오고 나올떄까지의 스코프
  • session : 웹 세션이 생성되고 종료 될 때까지의 스코프
  • application : 웹의 서블릿 컨텍스와 같은 범위로 유지되는 스코프

프로토타입 스코프

  • 기본 스코프가 아니다.
  • 즉 싱글톤이 아니다
    • 즉 스프링 컨테이너는 요청 할떄마다 새로운 Bean 인스턴스를 생성해서 반환한다. 스크린샷 2024-05-01 오후 6.31.45.png
  • 즉 객체만 생성하고 전혀 관리하지 않는다.
  • 핵심 : 즉 생성에만 관리한다. → 즉 추후 빈 관리는 클라이언트에게 있다.
    • @PreDestroy 같은 메서드가 실행되지 않는다.
    • 종료처리를 스프링이 해주지 않고 클라이언트가 직접 해야한다.
  • 즉 각 bean을 두번 실행하면 다른 bean 두개가 실행된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.