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