Today I Learned_220811

최대 1 분 소요

Spring Framework

인프런 스프링 강의 수강

스프링 빈 스코프

  • 싱글톤 : 기본적으로 생성되는 스코프
  • 프로토타입 : 스프링 컨테이너가 의존관계를 주입해주고 초기화 메소드를 불러서 클라이언트에 반환하는데 까지 관리하는 범위의 스코프
  • 웹 관련 스코프 : 스프링 웹과 관련된 기능이 들어가야 쓸 수 있는 스코프
    • request : 고객의 요청이 들어올 때 생성되고 나갈때 요청이 destroy되는 스코프
    • session : 보통 로그인에 많이 사용. 세션이 생성되고 종료될 때 까지 유지되는 스코프
    • application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프

prototype scope

빈 조회 시..

싱글톤 : 항상 같은 인스턴스의 스프링 빈 반환

프로토타입 : 항상 새로운 인스턴스 생성해서 반환

스프링 컨테이너는 프로토타입 스코프 빈을 생성, 의존관계 주입, 초기화까지 처리하고 그 이후 로직을 처리하지 않는다.

-> 그래서 @PreDestroy같은 종료 메소드가 호출되지 않음

-> 클라이언트에서 직접 종료 메소드를 호출해 줘야 함

싱글톤 빈 요청 flow

  1. 빈을 스프링 컨테이너에 요청
  2. 컨테이너가 관리하고 있는 스프링 빈 반환 -> 이미 생성된 빈 반환
  3. 이후 오는 요청 - 같은 객체 인스턴스의 스프링 빈 반환

프로토타입 빈 요청 flow

  1. 빈을 스프링 컨테이너에 요청
  2. 컨테이너는 빈 생성 후, 의존관계 주입 -> 이 때 빈을 생성
  3. 생성한 빈을 클라이언트에 반환
  4. 이후 오는 요청 - 요청이 올 때 마다 새로운 프로토타입 생성 후 반환

카테고리:

업데이트: