본문 바로가기

IT/Spring

[SpringBoot] destroy event 등록하기

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메소드를 등록해줍니다.