spring生命周期解析篇

Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean

各种接口方法分类

Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:
1、Bean自身的方法  :
  这个包括了Bean本身调用的方法和通过配置文件中的init-method和destroy-method指定的方法
2、Bean级生命周期接口方法  : 
 这个包括了BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean这些接口的方法
3、容器级生命周期接口方法  :
  这个包括了InstantiationAwareBeanPostProcessor 和 BeanPostProcessor 这两个接口实现,一般称它们的实现类为“后处理器”。
4、工厂后处理器接口方法  : 
 这个包括了AspectJWeavingEnabler, ConfigurationClassPostProcessor, CustomAutowireConfigurer等等非常有用的工厂后处理器  接口的方法。工厂后处理器也是容器级的。在应用上下文装配配置文件之后立即调用。

生命周期总结

第一步:创建bean工厂
通过实现实现BeanFactoryPostProcessor 接口,调用postProcessBeanFactory方法创建并实例化bean工厂
第二步:初始化bean对象
通过实现BeanPostProcessor接口,通过postProcessAfterInitialization和postProcessBeforeInitialization方法对bean对象进行初始化(参数第一个是bean对象,第二个是beanName)
第三步:实例化bean对象
通过实现InstantiationAwareBeanPostProcessorAdapter的postProcessBeforeInstantiation和postProcessAfterInstantiation方法。
并使用postProcessPropertyValues来设置某个属性时调用,返回值也应该是PropertyValues对象。
第四步:为bean对象注入属性
通过实现BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean四个接口
分别是创建bean 的name,创建bean工厂,初始化以及销毁bean。
第五步:初始化配置文件,并最终使用DiposibleBean.destory()进行销毁


【干货】Spring的生命周期(持续更新)相关推荐

  1. 干货 | Elasticsearch 索引生命周期管理 ILM 实战指南

    1.什么是索引生命周期? 关于人生,有人这么说:"人,生来一个人,死去一个人,所以,人生就是一个人生老病死的简称." 在基于日志.指标.实时时间序列的大型系统中,集群的索引也具备类 ...

  2. Spring Bean 生命周期之“我从哪里来”?懂得这个很重要

    Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...

  3. Spring的生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring的生命周期 转载于:https://my.oschina.net/u/138995/blog/176378

  4. Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02

    文章目录 Pre 通俗流程 finishBeanFactoryInitialization Pre Spring5源码 - 06 Spring Bean 生命周期流程 概述 01 接上文 通俗流程 下 ...

  5. Spring Bean默认配置为单实例 Spring Bean生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...

  6. Spring框架:三种Spring Bean生命周期技术

    当使用术语"生命周期"时,Spring的家伙指的是您的bean的构造和破坏,通常这与Spring Context的构造和破坏有关. 在某些情况下,Bean生命周期的管理不是一件容易 ...

  7. spring bean生命周期_Spring中bean的生命周期和扩展点有哪些?

    前言 今天和大家分享一下Spring中Bean的生命周期的一些知识.先来说一下什么是生命周期吧,生命周期从其语义上理解就是一个对象从产生到销毁的整个过程,之所以把这个过程称为生命周期是因为其就像一个生 ...

  8. Spring Bean生命周期: Bean的实例化

    [Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...

  9. Spring Bean生命周期过程

    Spring Bean生命周期过程 Spring Bean生命周期指的是Bean加载Spring容器的过程,单例的Bean与多例的Bean加载过程是不一样的.这里指的是单例Bean的加载过程. 图:S ...

  10. Spring容器生命周期--Lifecycle

    原文网址:Spring容器生命周期--Lifecycle_IT利刃出鞘的博客-CSDN博客 简介 Bean的初始化方法和销毁方法是Bean生命周期级别的:而Lifecycle是容器生命周期级别的.如果 ...

最新文章

  1. Tomcat中出现“RFC 7230 and RFC 3986“错误的解决方法
  2. rtp 多媒体流同步控制 实时传输协议 简介
  3. SEO交换链接时需遵循哪些原则?
  4. Java中的初始化顺序
  5. python(numpy,pandas3)——numpy索引
  6. Linux sed 写命令常见使用案例
  7. ios高级开发之多线程(一)
  8. olap 多维分析_将关系数据库与OLAP多维数据集链接
  9. php 模拟微信登录,实例详解PHP实现微信模拟登陆并给用户发送消息
  10. H265分辨率解码概述
  11. 衣带渐宽终不悔,为伊消得人憔悴。
  12. 用英语说计算机的优点1000,我的英语老师作文1000字
  13. 百度地图api如何查询周边大学、商场等的个数?可实现翻页
  14. 2018-2-13-win10-uwp-smms图床
  15. java斗地主发牌_java实现斗地主发牌系统
  16. 计算机考研408复试(面试)问题——数据结构
  17. npm install -g cnpm --registry=https://registry.npm.taobao.org (cnpm的安装)
  18. APP积分商城的前后置条件是什么?
  19. oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例
  20. 战神引擎 网络状态不佳或远程服务器繁忙 是否重试

热门文章

  1. win10 shell360ext.dll删除
  2. 医专需要学计算机课吗,教学条件
  3. 【数据库】ORACLE的rownum用法
  4. 如何用css和HTML设置聚光灯效果
  5. 十大2000元左右的热门Android手机盘点
  6. Lubuntu自动登录(修改配置文件)
  7. web sql database数据存储位置
  8. 世界环保创业基金会简介
  9. 安卓 页面跳转_曲奇影视:支持安卓+苹果,新出来的双端手机看片神器。
  10. 和上司交谈的四个注意事项