Spring ‐ 빈 스코프 - dnwls16071/Backend_Study_TIL GitHub Wiki

📚 빈 스코프

  • 스프링에서 지원하는 다양한 스코프
    • 싱글톤 : 스프링 컨테이너의 시작과 종료시까지
    • 프로토타입 : 프로토타입 빈의 생성과 의존관계 주입시까지
    • request : 웹 요청이 들어오고 나갈때까지
    • session : 웹 세션이 생성되고 종료될 때까지
    • application : 웹의 서블릿 컨텍스트와 같은 범위

기본 요청 순서 : HTTP 요청 → 필터 → 인터셉터 → 디스패처 서블릿 → 핸들러(컨트롤러) → HTTP 응답

📚 싱글톤 스코프 vs 프로토타입 스코프

스크린샷 2025-01-20 오후 4 07 35

  • 스프링 컨테이너는 기본적으로 싱글톤 스코프가 적용된다.
  • 여러 클라이언트 요청이 와도 같은 객체 인스턴스가 반환된다.

스크린샷 2025-01-20 오후 4 08 38

  • 여러 클라이언트 요청이 오면 프로토타입 빈이 생성되고 의존관계 주입 후 반환하는데 이 때, 의존관계 주입시까지만 스프링 컨테이너에서 관리된다.
  • 반환한 후에는 스프링 컨테이너에서 이 프로토타입 빈을 관리하지 않는다.
  • 이전 시간에 빈 생명주기 콜백에서 배웠던 @PreDestroy 어노테이션은 스프링 컨테이너에서 관리가 되는 빈에 대해서만 적용이 되기 때문에 프로토타입 빈의 경우에는 이 어노테이션을 쓰더라도 적용이 되지 않는다.