同步操作将从 turnon/blog 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
title: Spring Bean 生命周期
date: 2022-12-21 19:26:01
categories:
- Java
- 框架
- Spring
- Spring核心
tags:
- Java
- 框架
- Spring
- Bean
permalink: /pages/4ab176/
BeanDefinition 配置
BeanDefinition 注册接口:BeanDefinitionRegistry
BeanDefinition 合并
父子 BeanDefinition 合并
实例化方式
非主流生命周期 - Bean 实例化前阶段
InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation
Bean 属性赋值(Populate)判断
InstantiationAwareBeanPostProcessor#postProcessAfterInstantiation
Spring Aware 接口:
已完成:
Bean 实例化
Bean 属性赋值
Bean Aware 接口回调
方法回调:
Bean 初始化(Initialization)
方法回调:BeanPostProcessor#postProcessAfterInitialization
方法回调:Spring 4.1 +:SmartInitializingSingleton#afterSingletonsInstantiated
方法回调:DestructionAwareBeanPostProcessor#postProcessBeforeDestruction
Bean 销毁(Destroy)
Bean 垃圾回收(GC)
BeanPostProcessor 的使用场景有哪些?
BeanPostProcessor 提供 Spring Bean 初始化前和初始化后的生命周期回调,分别对应 postProcessBeforeInitialization 以及 postProcessAfterInitialization 方法,允许对关心的 Bean 进行扩展,甚至是替换。
加分项:其中,ApplicationContext 相关的 Aware 回调也是基于 BeanPostProcessor 实现,即 ApplicationContextAwareProcessor。
BeanFactoryPostProcessor 与 BeanPostProcessor 的区别?
BeanFactoryPostProcessor 是 Spring BeanFactory(实际为 ConfigurableListableBeanFactory) 的后置处理器,用于扩展 BeanFactory,或通过 BeanFactory 进行依赖查找和依赖注入。
BeanFactoryPostProcessor 必须有 Spring ApplicationContext 执行,BeanFactory 无法与其直接交互。
而 BeanPostProcessor 则直接与 BeanFactory 关联,属于 N 对 1 的关系。
BeanFactory 是怎样处理 Bean 生命周期?
BeanFactory 的默认实现为 DefaultListableBeanFactory
,其中 Bean生命周期与方法映射如下:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。