SpringBoot-监听应用启动与关闭的回调钩子
在使用SpringBoot过程中,可能会遇到一些业务场景如:
随应用启动成功,开启某些东西,随应用关闭成功后关闭某些东西
,这样的应用场景特别是在使用了分布式缓存的情况下尤其多,如应用启动成功后将指定数据缓存到Redis,应用关闭后清理指定的缓存数据
官方文档
官方文档上已经告诉开发者只需要实现特定接口即可监听到SpringBoot项目启动成功与关闭时的事件
实现CommandLineRunner
接口:当应用启动成功后的回调
实现DisposableBean
接口:当应用正要被销毁前的回调
代码实现
@Slf4j
@Component
public class ApplicationListens implements CommandLineRunner, DisposableBean {
//注入需要调用的Service
@Autowired
private RedisCacheUtils redisCacheUtils;
//应用启动成功后的回调
@Override
public void run(String... args) throws Exception {
log.info("应用启动成功,预相关加载数据");
}
//应用启动关闭前的回调
@Override
public void destroy() throws Exception {
log.info("应用正在关闭,清理相关数据");
}
}
测试