더북(TheBook)

4.4 빈 소멸 시점에 통지 받기

DefaultListableBeanFactory 인터페이스를 래핑한 ApplicationContext 구현체(getDefaultListableBeanFactory() 메서드를 통해 얻는 GenericXmlApplicationContext 등)를 사용할 때는 ConfigurableBeanFactory.destroySingletons()를 호출해 BeanFactory가 모든 싱글턴 인스턴스를 소멸시키도록 통지할 수 있습니다. 일반적으로 애플리케이션을 종료할 때 소멸 통지를 사용해 애플리케이션 내에서 여러 빈이 사용 중인 리소스를 모두 정리한 뒤 애플리케이션을 안전하게 종료할 수 있습니다. 또한, 소멸 통지를 받는 콜백은 메모리에 담겨 있는 데이터를 스토리지에 기록하고 장시간 실행 중인 빈을 종료하는 최적의 장소입니다.

destroySingletons()가 호출됐다는 통지를 받는 방법에는 세 가지가 있는데 이 방법들은 모두 초기화 콜백을 받는 메커니즘과 비슷합니다. 일반적으로 소멸 콜백은 초기화 콜백과 쌍으로 사용됩니다. 초기화 콜백에서 리소스를 생성해 구성하며 소멸 콜백에서 이들 리소스를 반납합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.