Donovan Yao 2022-01-02 10:53 采纳率: 0%
浏览 88

SpringBoot项目停止前更新数据 hikari

1、项目上遇到一个问题,服务停止前需要更新系统的数据。但是在钩子方法里更新的时候发现,hikari数据源已经被卸载了。
2、请问如何指定卸载数据源之前的操作,等待操作完成后再写在数据源?

  • 写回答

2条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-01-02 11:24
    关注

    Spring 在销毁 bean 之前会通过 DestructionAwareBeanPostProcessor#postProcessBeforeDestruction 通知应用,可以通过下面的示例代码在卸载 DataSource 之前执行一些操作。

    @Component
    public class DataSourceDestructionBeanPostProcessor implements DestructionAwareBeanPostProcessor {
    
        @Override
        public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException {
            if (bean instanceof DataSource) {
                // 销毁前执行特定操作
                System.out.println("数据源即将被销毁");
            }
        }
    }
    

    了解 Spring bean 更多的生命周期,可以看我之前写过的一篇文章 Java 面试必备的 Spring Bean 生命周期总结_zzuhkp的博客-CSDN博客

    如果解决了你的问题,麻烦给个采纳。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月2日

悬赏问题

  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环