5.Spring Bean生命周期.md

本文详细解析Spring框架中Bean的生命周期,从实例化到销毁的全过程,包括构造函数、setter方法、初始化方法、销毁方法及各生命周期接口的作用。并介绍了如何通过BeanPostProcessor和InstantiationAwareBeanPostProcessor进行更深层次的Bean处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.Spring Bean生命周期

生命周期流程图

bean生命周期

说明

  1. *调用InstantitationAwareBeanPostProcessor的postProcessBeforeInstantitation()方法
  2. 实例化:Class clazz, custructor或者 newInstance
  3. *调用用InstantitaonAwareBeanPostProcessor的postProcessAfterInstantitation()方法
  4. *调用InstantitaionAwareBeanPostProcessor的postProcesPropertyValues()方法
  5. 设置属性: 如果在配置中赋值了,则调用setXxx
  6. 调用BeanAware的setBeanName(String name), 把当前bean name 注入进来
  7. 调用BeanFactoryAware的setBeanFacotry(BeanFactory factory),吧factory注入进来
    . 调用ApplicationContextAware的setApplicationContent() ,把ApplicationContext注入进来
  8. *调用BeanPostProcessor的postporcessBeforeInitialization(Object o, String s)把 bean传进来,供组件处理bean的属性等, s为bean的name,o为bean的实例
  9. 调用InitializatingBean的afterPropertiesSet()方法
  10. 调用自定义初始方法,即init-method
  11. *调用BeanPostProcessor的postProcessAfterInitialization(Object o, String s)方法
  12. bean可以用了
  13. 容器关闭
  14. 调用DisposableBean的destroy()方法
  15. 调用自动以的销毁方法,即destroy-method.

总结

  1. 生命周期调用方法,大概分为4类:
    1. Bean自身的方法
      1. 构造函数实例化bean,setter熟悉,init-method,destory-method
    2. Bean级生命周期接口
      1. BeanNameAware,BeanFactoryAware,InitializingBean和DisposableBean,这些接口的方法由bean类直接实现
    3. 容器级生命周期接口方法
      1. 带*的有InstantiationAwareBeanPostProcessor和BeanPostProcessor这两个接口实现,一般不由bean本身实现,他们独立于bean,对所有bean其作用,可以针对具体某一bean处理
    4. 工厂后处理方法
  2. bean级的生命周期接口和容器级生命周期接口是个性和共性辩证统一思想的体现。前者解决bean个性化处理问题,后者解决容器中某些bean共性化处理的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值