Spring中shutdown hook作用

  • 在Spring框架中,Shutdown Hook(关闭钩子)是一种机制,用于在应用程序关闭时执行一些清理操作
  • Spring会向JVM注册一个shutdown hook,在接收到关闭通知的时候,进行bean的销毁,容器的销毁处理等操作
  • 在Spring框架中,可以使用AbstractApplicationContext类或其子类来注册Shutdown Hook
  • 这些类提供了一个registerShutdownHook()方法,用于将Shutdown Hook与应用程序上下文关联起来
  • 很多中间件的优雅上下线的功能,都是基于Spring的shutdown hook的机制实现的,比如Dubbo的优雅下线
  • 还有我们经常在Spring中使用的以下两种方式,其实都是基于shutdown hook实现的
  • 如:1、实现DisposableBean接口,实现destroy方法:

    Spring中shutdown hook作用_第1张图片

  • 2、使用@PreDestroy 注解

    Spring中shutdown hook作用_第2张图片

  • 当然,我们也可以借助Spring的事件机制,来自己注册一个hook,如下:

    Spring中shutdown hook作用_第3张图片

  • 可以实现ApplicationListener接口,监听 Spring 容器的关闭事件(ContextClosedEvent),来做一些特殊的处理

你可能感兴趣的:(Spring,spring,java,后端)