본문 바로가기
Spring

Lazy-initialized Beans

by irerin07 2024. 1. 24.
728x90
  • 기본적으로 ApplicationContext는 초기화 단계에 모든 싱글턴 빈을 생성하고 설정합니다.
    • 싱글턴 빈은 단 하나만 만들어져 공유되는 빈
    • 만약 prototype이라면 매 요청시마다 새로 만들어야 하기 때문에 초기화 단계에 미리 만들 필요가 없기 때문이라 생각함
  • 대다수의 경우 설정이나 환경오류를 즉각 발견할 수 있기 때문에 이런 pre-instantiation이 유용합니다.
  • 하지만 싱글턴 빈의 pre-instantiation을 원하지 않는 경우 lazy-initialized 되도록 빈 설정을 할 수 있습니다.
  • lazy-initialized빈은 IoC 컨테이너에게 자신이 처음 요청된 시점에 빈을 생성하라고 알려줍니다.
  • 만약 초기화 단계에 인스턴스화 되는 싱글턴 빈이 lazy-initialized 설정값을 가진 빈에 의존성을 가지고 있다면 ApplicationContext는 초기화 단계에 lazy-initialized 설정이 된 빈 역시 생성하고 설정하게 됩니다.
    • 초기화 단계에 인스턴스화 되는 싱글턴 빈의 조건을 충족시키기 위함입니다.

 

출처 : https://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-lazy-init.html

728x90