Spring bean 의 close() 가 자동 호출되는 경우

Jung-taek Lim
1 min readNov 26, 2015

--

Imported from Agit

https://jira.spring.io/browse/SPR-10034

Bean 객체가 Closeable 를 구현하고 있으면 close() 를 destroy method 로 자동 등록한다고 하네요. (3.2 RC2)

사실 문제 발생 원인 찾다가 발견한 기능인데요.

문제가 된 시나리오는 ApplicationContext 에 대해 registerShutdownHook() 으로 shutdown hook 을 등록하는데, 프로세스 종료 시에 shutdown hook 이 먼저 동작하면서 Bean 의 close() 가 호출되고, 이후 프로세스가 완전히 종료되기 전까지 다른 쓰레드에서 해당 Bean 을 호출하는 로직들이 전부 오류가 발생했습니다.

참고하세요~

--

--

No responses yet