【spring Bean生命周期】

文章详细阐述了SpringBean的生命周期,包括实例化、属性赋值、初始化、使用和销毁阶段,并通过比喻生动解释。同时,讨论了系统级Bean和自定义Bean的区别,以及BeanFactory和ApplicationContext的不同。此外,对比了BeanFactoryPostProcessor和BeanPostProcessor在触发时间、处理对象、执行顺序和实现方式上的差异。
摘要由CSDN通过智能技术生成

1.spring bean生命周期[面试常问]

  • 1.实例化
  • 2.属性赋值populate
  • 3.初始化
  • 4.使用中
  • 5.销毁

可以对应人的一生

  • 1.出生
  • 2.登记身份证,姓名
  • 3.成长接受教育
  • 4.工作,作对社会有用的人
  • 5.死亡,人死如灯灭,死前立遗嘱,死后要火化

2. Bean的分类

  • 系统级Bean
    • 实例化时机: ApplicationContext管理的Bean,容器初始化的时候就会完成系统级bean的实例化
  • 自定义Bean
    • 当使用到自定义Bean时,BeanFactory才会去实例化它们。

区别: BeanFactory和ApplicaitonContext

BeanFactory是一个相对原始的社会,ApplicaitonContext是一个相对发达健全
的社会。

3.Bean的详细生命周期

从BeanDefinition获取后,就可以对BeanFactory进行实例化,以及对Bean进行实例化。那么这个过程是如何的呢?
在这里插入图片描述
对上述图进行详细描述:
在这里插入图片描述
这个过程很哲学,像大自然一样自然!!!
在来看一下顺序的流程吧!
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.BeanFactoryPostProcessor接口和BeanPostProcessor接口有何不同?

1. 触发时间点不同:BeanFactoryPostProcessor在Bean的定义加载完成后,实例化Bean之前执行;
   而BeanPostProcessor在Bean实例化后,初始化前后执行。

2. 处理对象不同:BeanFactoryPostProcessor处理的是Bean的定义信息,可以修改Bean的定义,
   添加、删除Bean的定义等;而BeanPostProcessor处理的是Bean实例,可以对Bean实例进行修改、增强。

3. 执行顺序不同:BeanFactoryPostProcessor的执行优先于BeanPostProcessor。

4. 实现方式不同:BeanFactoryPostProcessor需要实现BeanFactoryPostProcessor接口,实现
   postProcessBeanFactory方法;而BeanPostProcessor需要实现BeanPostProcessor接口,实现
   postProcessBeforeInitialization和postProcessAfterInitialization方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值