spring boot를 사용하다보면 명시적으로 자원을 close 해주어야 하는 경우가 있습니다.
이때 spring boot destory event 발생 시 자원을 close해주는 코드를 추가해주면 됩니다.
public class ShutdownHookConfiguration {
public void destroy() {
/* close 로직*/
}
}
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean(destroyMethod = "destroy")
public ShutdownHookConfiguration shutdownHookConfiguration() {
return new ShutdownHookConfiguration();
}
}
ShutdownHookConfiguration 클래스를 생성하고 destroy 메소드를 선언한 후 close 로직을 작성합니다.
그런 다음 SpringBootAplication 어노테이션을 등록한 클래스에 ShutdownHookConfiguration 클래스를 Bean으로 등록한 다음 destroyMethod에 destory메소드를 등록해줍니다.