首页 > 编程语言 >@PreDestroy与@PostConstruct关键源码实现

@PreDestroy与@PostConstruct关键源码实现

时间:2022-11-15 19:44:39浏览次数:44  
标签:PostConstruct PreDestroy bean InitDestroyAnnotationBeanPostProcessor 方法 源码

CommonAnnotationBeanPostProcessor(继承InitDestroyAnnotationBeanPostProcessor)

在InitDestroyAnnotationBeanPostProcessor中,buildLifecycleMetadata方法会将目标类中被PostConstruct注解标记的初始化方法与被PreDestroy注解标记销毁时执行方法封装到LifecycleMetadata对象中,便于在bean实例化与容器销毁时执行。
image

其中initMethods在BeanFactory中经由doCreateBean->initializeBean->applyBeanPostProcessorsBeforeInitialization方法执行。
image

destroyMethods则通过SpringBeanContainer->createBean方法和bean对象一起被封装进了SpringContainedBean对象中。最终会在容器停注销时调用stop方法执行。
image

标签:PostConstruct,PreDestroy,bean,InitDestroyAnnotationBeanPostProcessor,方法,源码
From: https://www.cnblogs.com/lzxulxy/p/16893512.html

相关文章

  • MySQL 源码解读之-语法解析(三)
    MySQL源码解读之-语法解析(三)在前两篇文章中已经讲述了bison如何解析sql语句并生成AST树。那么MySQL是如何和bison的程序关联起来的呢,并通过gdb调试一下。在MyS......
  • CentOS服务器上普通用户(非root)源码部署禅道
    简介:公司服务器上的docker容器,其中一个容器最小化安装了CentOS,要在这个什么命令都没有的Linux系统上,在指定的路径下,部署禅道(先搭建环境);搭建Apache、PHP、MariaDB,并结合同......
  • django源码解读 一
    1.搭建django源码测试环境1.安装python环境这里我使用的是3.102.安装django,我安装的是django4.03.创建一个文件夹,将找到django源码放在这个文件夹中,一般是在安......
  • 基于遗传算法的电动汽车有序充放电优化问题(附matlab源码)
    ​   为了减小电动汽车规模化充电给配电网安全稳定运行带来的不利影响,提出一种基于遗传算法的电动汽车有序充电策略。考虑用户出行规律及保证配电网的安全稳定运行,以......
  • Vue3 —— 组件练习题(附源码)
    一、定义一个vue分页组件,实现客户端分页功能1.1、子组件A(页数按钮)<!--本组件用于遍历分页的页数按钮--><templatelang=""><divclass="btn-box"><!--......
  • C#万年历源码参考
    C#万年历源码参考万年历Class源码:   ///中国日历异常处理---注意,该异常处理必须是在Class之外,   publicclassChineseCalendarException:System.Exception ......
  • 在线直播系统源码,数组遍历提取,订单效果
    在线直播系统源码,数组遍历提取,订单效果 <!DOCTYPEhtml><html> <head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge"> ......
  • 直播平台源码,vue 写搜索效果
    直播平台源码,vue写搜索效果代码如下 <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><divid="app"><h1>搜索水果</h1><inputtype=......
  • vue源码分析-基础的数据代理检测
    简单回顾一下这个系列的前两节,前两节花了大量的篇幅介绍了Vue的选项合并,选项合并是Vue实例初始化的开始,Vue为开发者提供了丰富的选项配置,而每个选项都严格规定了合并的策......
  • vue源码分析-挂载流程和模板编译
    前面几节我们从newVue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项......