시냅스

스프링 빈 스코프 Spring Bean Scope 본문

Java, Spring

스프링 빈 스코프 Spring Bean Scope

ted k 2022. 7. 25. 16:12

빈 스코프 Spring Bean Scope

  • 빈이 존재할 수 있는 범위
  • 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프
  • 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프
  • 웹 관련 스코프
    • request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프
    • session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프
    • application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프

 

싱글톤 요청

  • 싱글톤 스코프의 빈을 스프링 컨테이너에 요청한다.
  • 스프링 컨테이너는 본인이 관리하는 스프링 빈을 반환한다.
  • 이후에 스프링 컨테이너에 같은 요청이 와도 같은 객체 인스턴스의 스프링 빈을 반환한다.

 

프로토타입 빈 요청

  • 프로토 타입 스코프 빈을 컨테이너에 요청하면
  • 프로토 타입 빈을 생성하고 필요한 의존관계를 주입하여 클라이언트에 반환한다.
  • 항상 새로운 빈을 생성하여 반환한다.
  • 이후 컨테이너는 관여하지 않는다.

 

웹 스코프

  • request : HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다.
  • session : HTTP Session과 동일한 생명주기를 가지는 스코프
  • application : 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가지는 슼포ㅡ
  • websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프
Comments