Bean的生命周期概括起来有四个阶段:

实例化 -> 属性赋值 -> 初始化 -> 销毁

具体如下图所示:

  • 1、实例化
    实例化一个Bean,即new
  • 2、IOC依赖注入
    按照Spring上下文对实例化的Bean进行配置。
  • 3、setBeanName实现
    如果这个Bean已经实现了BeanNameAware接口,就会调用它实现的setBeanName(String)方法,此处传递的是Spring配置文件中Bean的id值。
  • 4、setBeanFactory实现
    如果这个Bean实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(BeanFactory)方法,传递的是Spring工厂自身。
  • 5、setApplicationContext实现
    如果这个Bean实现了ApplicationContextAware接口,会调用它实现的setApplicationContext(ApplicationContext)方法,传递的是Spring的上下文。
  • 6、postProcessBeforeInitialization实现-初始化预处理
    如果这个Bean实现了BeanPostProcessor接口,将会调用它实现的postProcessBeforeInitialization(Object obj,String s)方法。BeanPostProcessor被用作Bean内容修改,并且由于这个是在Bean初始化结束的时候调用的这个方法,也可以被用于内存或缓存技术。
  • 7、init-method
    如果这个bean在Spring配置文件中配置了init-method属性,会自动调用其配置的初始化方法。
  • 8、postProcessAfterInitialization
    如果这个Bean实现了BeanPostProcessor接口,将会调用它实现的postProcessAfterInitialization(Object obj,String s)方法。
    以上工作完成以后就可以应用这个Bean了。
  • 9、Destory过期自动清理
    当Bean不再需要时,如果这个Bean实现了DisposableBean这个接口,会调用其实现的.destory()方法。
  • 10、destory-method
    如果这个bean在Spring配置文件中配置了destory-method属性,会自动调用其配置的销毁方法。

Spring Bean的生命周期(一图看懂bean生命周期)相关推荐

  1. 一张图看懂React生命周期

    2019独角兽企业重金招聘Python工程师标准>>> 一.创建时 componentWillMount 初始化组建,render方法之前执行,官方不建议做数据请求 componen ...

  2. 一张图看懂Bean的实例化过程

    实例化 bean 对象,类似于 new XXObject() 将配置文件中配置的属性填充到刚刚创建的 bean 对象中. 检查 bean 对象是否实现了 Aware 一类的接口,如果实现了则把相应的依 ...

  3. 一张图看懂微服务架构路线

    目录 一张图看懂微服务架构路线 我为什么选择微服务架构? 微服务架构路线 基本思路 Docker 容器编排 Docker 容器管理 API网关 负载均衡 服务发现 事件总线 日志记录 监控和警报 分布 ...

  4. 一张脑图看懂BUI Webapp移动快速开发框架【上】--框架与工具、资源

    前言 之前写过一篇 2018开发最快的Webapp框架--BUI交互框架 ,如果你还没看过,可以简单看一下,主要介绍了BUI的基本功能,有多少控件,以及实现的思路,BUI 1.5版本以后变化很大,统一 ...

  5. sdn体系的三个平面_十张图看懂SDN与NFV的区别与联系?

    原标题:十张图看懂SDN与NFV的区别与联系? 专业的人说的很准确但是普通人难以理解,常常记不住,分不清,不专业的人往往又说的差点意思.无意间,笔者在领英上看到一个介绍SDN/NFV区别的公开文档,内 ...

  6. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  7. 一张图看懂图像识别算法发展历史

    一张图看懂图像识别算法发展历史

  8. 一图看懂新一代人工智能知识体系大全

    来源:财经头条 摘要:人工智能的发展离不开基础支持层和技术层,基础支持层包括大数据.计算力和算法:技术层包括计算机视觉.语音识别和自然语言处理.人工智能的技术本质是什么,本文会详细分析. 人工智能的发 ...

  9. 一图看懂windows11新功能

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 微软Windows 11操作系统还没有正式推出,不过加入"预览体验计划"可以抢先体 ...

  10. 一图看懂hadoop分布式文件存储系统HDFS工作原理

    一图看懂hadoop分布式文件存储系统HDFS工作原理 转载于:https://www.cnblogs.com/AlexQY/p/9856477.html

最新文章

  1. Kubernetes — 容器设计模式
  2. java多线程基本概述(二十)——中断
  3. CXF之webservice
  4. 爨底下-双龙峡,凑合的一日游
  5. 如何让Excel里显示的数字避免通过科学计数法来显示
  6. linux 内核编译速度,内核编译之后的运行速度
  7. 重定义 UIImagePickerController
  8. uniapp/vue 组件之间的传值
  9. 总结(6)--- python基础知识点小结(细全)
  10. Dataset:智慧中国杯—全国大数据创新应用大赛七个数据集简介、下载之详细攻略
  11. 网页里添加Skype、WhatsApp及时聊天窗口
  12. Ubuntu 18.04及几款应用的安装
  13. echarts 时间曲线图_web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成...
  14. java读取控制台输入_如何使用Java中的Scaner类从控制台读取输入?
  15. 编写程序计算两个矩阵之和。
  16. Web大学生网页作业成品 基于HTML+CSS+JavaScript-----苹果商城Apple商城 8页 三级带视频
  17. 欢迎来到WebGPU的世界
  18. 大伙帮我一起来看看这个数据库的题目
  19. Intellij或者pycharm的缓存目录很大,如何从C盘移动出去?
  20. matlab中信赖域法,第8讲信赖域方法.ppt

热门文章

  1. 慕课《算法分析与设计》山东财经大学李恒武,第二章算法分析 测验题问题梳理答案
  2. 【手册】Linux User's Manual
  3. 基于STM32F103完成对SD卡的数据读取操作
  4. IDEA炫酷主题推荐!非常好看!
  5. 草料二维码 批量生成二维码
  6. 某公司电子商务网站策划方案
  7. mysql sql语句 参数化_参数化SQL语句
  8. 计算机画cad很慢怎么办,【2人回答】画CAD图时电脑很卡怎么办?-3D溜溜网
  9. 计算机考试操作步骤,全国计算机等级考试网报操作流程
  10. qq空间把android改成iphone,qq空间改iPhone6 Plus方法 qq空间改手机型号教程