Spring bean的生命周期[通俗易懂]

Spring bean的生命周期[通俗易懂]Spring bean的生命周期

大家好,又见面了,我是你们的朋友全栈君。

1. Spring对bean进行实例化,即相当于New Bean();
2. Spring将bean的属性值(如果有)和bean的引用(如果有)注入到bean对应的属性中;
3. 如果bean实现了BeanNameAware接口(Spring不推荐使用), 则Spring将bean的id传递给setBeanName(String name)方法,以方便在bean factory中知道bean的name;
4. 如果bean实现了BeanFactoryAware接口, Spring将调用setBeanFactory(BeanFactory beanFactory)方法, 将BeanFactory容器实例传入,以便bean能够通过BeanFactory容器中的相关beans;
5. 如果bean实现了ApplicationContextAware接口(Spring 推荐), Spring将调用setApplicationContext(ApplicationContext applicationContext)方法, 将bean所在的applicationContext的引用传入进来,以便bean能够通过applicationContext中的其他beans;
6. 如果bean实现了BeanPostProcessor接口, Spring将调用它们的postProcessBeforeInitialization(Object bean, String beanName)方法;
7. 如果bean实现了InitializingBean接口, Spring将调用它们的afterPropertiesSet()方法。 类似地, 如果bean使用init-method声明了初始化方法, 该方法也会被调用;
8. 如果bean实现了BeanPostProcessor接口, Spring将调用它们的postProcessAfterInitialization(Object bean, String beanName)方法;
9. 经过以上操作, bean一切已经准备就绪, 可以被应用程序使用了, bean将一直驻留在应用上下文中,直到该应用上下文(即applicationContext)被销毁;
10. 如果bean实现了DisposableBean接口, Spring将调用它的destroy()接口方法。 同样, 如果bean使用destroy-method声明了销毁方法, 该方法也会被调用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149542.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月17日 上午7:46
下一篇 2022年6月17日 上午8:00


相关推荐

  • [MODIS数据处理#1]利用MRT工具预处理MODIS数据——以MOD16、MOD13为例

    [MODIS数据处理#1]利用MRT工具预处理MODIS数据——以MOD16、MOD13为例文中涉及的部分MODIS数据处理方法仅适用于MODIS二级以上产品上一篇文章MODIS数据处理#0中,我们利用Chrono的资源嗅探功能批量下载MODIS数据。至此,已经得到了一系列的MODIS产品数据,文件后缀为.hdf。本文内容主要有:• hdf文件转换工具选择• HEG安装步骤• MRT批处理框架• 以MOD16、MOD13数据集为例,初识栅格一、hdf转换工具选择在导入Arc…

    2022年5月29日
    53
  • Android的系统服务一览

    System_Server进程运行在systemserver进程中的服务比较多,这是整个Android框架的基础Native服务SurfaceFlinger这是framebuffer合成的服务,将各

    2021年12月22日
    55
  • python:类基础「建议收藏」

    python:类基础「建议收藏」1、面向对象编程(oop)是一种程序设计思想。oop把对象作为程序的基本单元,一个对象包含数据和操作数据的函数2、在python中,所有数据类型都被视为对象,也可以自定义对象。自定义对象数据类型就是面向对象中类的概念1、类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例2、方法:类中定义的函数3、类变量(属性):类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体(方法)之外。类变量通常不作为实例变量使用,类变量也称作属性4、数

    2022年7月23日
    11
  • 波束形成的一点思考[通俗易懂]

    波束形成的一点思考[通俗易懂]1)波束形成,就是空域滤波。N个阵元,在某一时刻使用FPGA同时采样,得到同一时刻的各个通道的一个采样,就如同拍照一样,同一时刻的各个通道数据得到。  波束形成,则是空域滤波,与时域滤波相比较,是时间域序列,进行滤波,滤波系数h(n),采样序列不断输入与滤波系数卷积计算,得到响应输出;  而波束形成,则是针对某一时刻,不同阵元,通过一个空域滤波系数,得到多少个波束输出;空域滤波系数,一

    2022年6月23日
    29
  • offsetLeft和clientLeft的区别

    offsetLeft和clientLeft的区别offsetLeft 从字面意思上理解 就是以父元素作为参照点 当前元素相对于父元素左边的偏移量 clientLeft 的值就等于 border left 的值

    2026年3月16日
    2
  • 用例图详解_用例图include是用什么画的

    用例图详解_用例图include是用什么画的对于用例图来说我们需要了解的是什么叫用例图,构成用例图的要素,用例图有哪些重要的元素,各个用例之间的关系。当然最重要的是如何根据需求创建用例图。具体的创建通过一个简单的学生管理的例子说明创建的过程和例子。  我的所有例子都是是使用Rose这个软件来画的,现在虽然有新的UML模型画图软件,但是我比较喜欢用这个Rose,如果你还没有装这个软件需要先装一个,或者使用你比较喜欢的UML画图软件。下面我们

    2025年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号