Bean Scope

Haechan Kim·2023년 1월 10일
0

Spring

목록 보기
23/69

Bean Scope
빈이 존재할 수 있는 범위
보통 스프링 빈은 스프링 앱 구동 시 ApplicationContext에서 한번에 생성 -> 하나의 클래스는 한 개의 빈만 갖는다(Singleton).

때에 따라서 http 요청마다 다른 빈 생성해서 쓸건지 ..

--
스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지됨. -> 스프링 빈이 싱글톤 스코프로 생성되기 때문.

스프링은 다음과 같은 다양한 스코프 지원.

  • 싱글톤 : 기본 스코프. 스프링 컨테이너 시작과 종료까지 유지되는 가장 넓은 범위 스코프.
  • 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관여하지 않는 매우 짧은 범의의 스코프.
  • 웹 관련 스코프
    - request : 웹 요청 들어오고 나갈때까지 유지되는 스코프
    • session : 웹 세션 생성되고 종료될때까지 유지되는 스코프
  • 빈 스코프 지정 방식
  1. 컴포넌트 스캔 자동 등록

  2. 수동 등록

빈 등록되면 기본적으로 컨테이너에 싱글톤으로 올라감. 모든 객체들이 빈 참조 시에 동일한 주소값 참조, 하나의 객체만 지속적으로 사용,

생성자 호출 시 값 찍기

기존 스프링 컨테이너에 등록된 스프링 빈은 싱글톤 스코프이다. -> 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다.

  • 프로토타입 스코프

<참고>
https://code-lab1.tistory.com/186
https://www.youtube.com/watch?v=fPSWcgogdR0

0개의 댓글