Backend Develop/Spring Framework
[Spring]Lazy Initailization의 개념과 이해
Soondo.Kwon
2022. 1. 22. 20:23
기본적으로 Spring IOC Container는 어플리케이션을 시작할 때 모든 Bean을 초기화합니다. 이 과정에서 Bean 초기화에 실패할 수도 있는데 이로 인해 어플리케이션 시점에 장애를 사전에 발견할 수 있습니다. 반면, 어플리케이션 시작하는 과정에 모든 Bean을 초기화하는 경우, 부팅하는데 시간이 많이 걸릴 수 있다는 단점이 있습니다.
Lazy Initialization 활성화하는 방법
1. spring.main.lazy-initialization 설정
SpringBoot의 설정파일인 application.properties(또는 appliation.yml)에 spring.main.lazy-initailization의 값을 true로 설정하면 모든 Bean을 Lazy Initialization 적용합니다.
2. @Lazy 어노테이션 사용
Lazy Initialization을 적용하고 싶은 특정 Bean에만 적용 가능합니다.
Lazy Initialization의 장단점
[장점]
Lazy Initialization을 적용하면 어플리케이션이 구동될 때 생성되는 Bean의 수를 줄일 수 있으므로 부팅타임을 개선할 수 있습니다.
[단점]
어플리케이션 부팅 시, Load되는 Bean의 오류를 미리 발견할 수 없습니다.