【干货】Spring的生命周期(持续更新)
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的生命周期(持续更新)相关推荐
- 干货 | Elasticsearch 索引生命周期管理 ILM 实战指南
1.什么是索引生命周期? 关于人生,有人这么说:"人,生来一个人,死去一个人,所以,人生就是一个人生老病死的简称." 在基于日志.指标.实时时间序列的大型系统中,集群的索引也具备类 ...
- Spring Bean 生命周期之“我从哪里来”?懂得这个很重要
Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...
- Spring的生命周期
2019独角兽企业重金招聘Python工程师标准>>> Spring的生命周期 转载于:https://my.oschina.net/u/138995/blog/176378
- Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02
文章目录 Pre 通俗流程 finishBeanFactoryInitialization Pre Spring5源码 - 06 Spring Bean 生命周期流程 概述 01 接上文 通俗流程 下 ...
- Spring Bean默认配置为单实例 Spring Bean生命周期
2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...
- Spring框架:三种Spring Bean生命周期技术
当使用术语"生命周期"时,Spring的家伙指的是您的bean的构造和破坏,通常这与Spring Context的构造和破坏有关. 在某些情况下,Bean生命周期的管理不是一件容易 ...
- spring bean生命周期_Spring中bean的生命周期和扩展点有哪些?
前言 今天和大家分享一下Spring中Bean的生命周期的一些知识.先来说一下什么是生命周期吧,生命周期从其语义上理解就是一个对象从产生到销毁的整个过程,之所以把这个过程称为生命周期是因为其就像一个生 ...
- Spring Bean生命周期: Bean的实例化
[Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...
- Spring Bean生命周期过程
Spring Bean生命周期过程 Spring Bean生命周期指的是Bean加载Spring容器的过程,单例的Bean与多例的Bean加载过程是不一样的.这里指的是单例Bean的加载过程. 图:S ...
- Spring容器生命周期--Lifecycle
原文网址:Spring容器生命周期--Lifecycle_IT利刃出鞘的博客-CSDN博客 简介 Bean的初始化方法和销毁方法是Bean生命周期级别的:而Lifecycle是容器生命周期级别的.如果 ...
最新文章
- Tomcat中出现“RFC 7230 and RFC 3986“错误的解决方法
- rtp 多媒体流同步控制 实时传输协议 简介
- SEO交换链接时需遵循哪些原则?
- Java中的初始化顺序
- python(numpy,pandas3)——numpy索引
- Linux sed 写命令常见使用案例
- ios高级开发之多线程(一)
- olap 多维分析_将关系数据库与OLAP多维数据集链接
- php 模拟微信登录,实例详解PHP实现微信模拟登陆并给用户发送消息
- H265分辨率解码概述
- 衣带渐宽终不悔,为伊消得人憔悴。
- 用英语说计算机的优点1000,我的英语老师作文1000字
- 百度地图api如何查询周边大学、商场等的个数?可实现翻页
- 2018-2-13-win10-uwp-smms图床
- java斗地主发牌_java实现斗地主发牌系统
- 计算机考研408复试(面试)问题——数据结构
- npm install -g cnpm --registry=https://registry.npm.taobao.org (cnpm的安装)
- APP积分商城的前后置条件是什么?
- oracle中如何格式化输出,【学习笔记】数据库日期时间格式化输出案例
- 战神引擎 网络状态不佳或远程服务器繁忙 是否重试