Last updated
Last updated
기본적으로 ApplicationContext
구현 은 초기화 프로세스의 일부로써 모든 Bean을 열심히 만들고 구성합니다 . 일반적으로 구성(configuration) 또는 주변 환경의 오류가 즉시 발견되기 때문에 이 사전 인스턴스화가 바람직합니다. 이는 몇 시간 또는 며칠 후가 아니라 즉시 발견됩니다. 이 동작이 바람직하지 않은 경우, bean 정의를 lazy-initialized로 bean정의를 표시함으로써 싱글 톤 bean의 사전 인스턴스화를 막을 수 있습니다. lazy-initialized Bean은 Bean이 시작될 때가 아니라 Bean 인스턴스가 처음 요청 될 때 Bean 인스턴스를 생성하도록 IoC 컨테이너에 지시합니다.
XML에서 이 동작은 다음 예제와 같이 <bean/>
요소 의 lazy-init
특성에 의해 제어됩니다.
이전의 구성(configuration)이 ApplicationContext
에 의해 소비 되었을 때 , lazy
bean은 ApplicationContext
시작될 때 열심히 pre-instantiated 되지 않지만, not.lazy
bean은 열성적으로 pre-instantiated된다.
그러나 lazy-intialized bean lazy-intialized 가 되지 않은 singleton bean의 종속성 일 때, 시작시에 ApplicationContext
가 lazy initilaized bean을 생성합니다. 왜냐하면 싱글 톤의 종속성을 안정시켜야하기 때문입니다. lazy-initialised bean은 not lazy-initialized인 다른 singleton bean 주입 된다. < 먼말이지! ㅜ
(The lazy-initialized bean is injected into a singleton bean elsewhere that is not lazy-initialized.)
다음 예는 <beans/>
요소 의 default-lazy-init
속성을 사용하여 컨테이너 레벨에서 지연 초기화를 제어 할 수도 있습니다.