美文网首页
销毁Spring Bean: 销毁Bean的基本操作有哪些?

销毁Spring Bean: 销毁Bean的基本操作有哪些?

作者: 码农架构 | 来源:发表于2020-09-02 11:21 被阅读0次

Spring 源码解读分析中上一篇主要介绍关于Bean的初始化以及延迟初始化,接下来分析Bean的销毁阶段-和Bean 的初始化对应!Bean的销毁方式也有三种

注解标注  @preDestory 标注方法

实现 DisposableBean 接口的destroy()方法

自定义销毁方法

  • xml 配置

  • Java 注解

  • Java API

  • 其中可以看到@preDestory Java 标准注解销毁,按照字面意思就是按照我们之前的来进行操作。这里的Destory 和我们的这里的销毁其实有点冲突。@preDestpry 主要是指Bean 对象被销毁,也就是说Bean对象被回收之前,也就是被Java GC 之后才被操作。

    思考:假设以上三种方式均在同一Bean中定义,那么这些方法的执行顺序是怎样?

    案例分析

    其实这里我们可以大胆猜测,Bean 的销毁和 Bean 初始化顺序对应  注解标注> 接口实现 > 自定义

    注解标注  @preDestory 标注方法

    实现 DisposableBean 接口的destroy()方法

    自定义方式实现【这里以Java 注解为案例】

    执行结果分析和猜测结果一样

    当我们输出应用上下文准备关闭的时候和已关闭之间,也就是我们调用close()方法的过程中上述方法会被逐一关闭掉 

    总结

    通过三种不同的Bean的销毁方案,同时也对比初始化三种方案来做一个参照,会发现注解总是优先,就是Java 标注注解优化;然后Spring 里面DisposableBean 接口是第二位,第三位就是我们自定义的实现方式!这三种方式可以和Bean 的初始化过程一起去对照了解~

    源码地址:https://gitee.com/iByteCoding/thinking-in-spring

    🧐分享、点赞、在看,给个三连击呗!👇 

    相关文章

    网友评论

        本文标题:销毁Spring Bean: 销毁Bean的基本操作有哪些?

        本文链接:https://www.haomeiwen.com/subject/ypwisktx.html