【Spring】Bean生命周期源码总结

1.案例验证

定义两个bean A,B 以及实现MyBeanFactoryProcess,MyBeanProcessor,MyInstantiationAwareBeanPostProcessors三个扩展点

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="a" class="com.sgg.bean.A" init-method="init"/><bean id="b" class="com.sgg.bean.B"/><bean id="myBeanFactoryProcess" class="com.sgg.process.MyBeanFactoryProcess"/><bean id="myBeanProcessor" class="com.sgg.process.MyBeanProcessor"/><bean id="myInstantiationAwareBeanPostProcessors" class="com.sgg.process.MyInstantiationAwareBeanPostProcessors"/></beans>

A

B

MyBeanFactoryProcess

`MyBeanProcessor

MyInstantiationAwareBeanPostProcessors

输出结果

2. 总结

2.1 BeanFactoryPostProcessor

创建bean工厂解析生成bd后,我们可以通过实现BeanFactoryPostProcessor 拿到 bean工厂对象,对启动的bean的定义信息进行修改

2.2 InstantiationAwareBeanPostProcessor

实例化bean之前,我们可以实现 InstantiationAwareBeanPostProcessor 重写 postProcessBeforeInitialization方法 往容器中添加一个对象,结束当前bean的实例化

实例化bean之后,我们可以实现 InstantiationAwareBeanPostProcessor 重写 postProcessAfterInstantiation方法 返回ture或false,决定是否进行属性填充

2.3 BeanPostProcessor

初始化bean之前 我们可以实现 BeanPostProcessor重写 postProcessBeforeInitialization方法 改变当前beanName对应的bean

初始化bean之后 我们可以实现 BeanPostProcessor重写 postProcessAfterInitialization方法 拿到初始化完成后的bean对象

【Spring】Bean生命周期源码分析 总结相关推荐

  1. 【安卓 R 源码】Activity 启动流程及其生命周期源码分析

    1. Activty 的生命周期 activity的生命周期 oncreate()->onstart()->onResume()->onPause()->onStop()-&g ...

  2. Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02

    文章目录 Pre 通俗流程 finishBeanFactoryInitialization Pre Spring5源码 - 06 Spring Bean 生命周期流程 概述 01 接上文 通俗流程 下 ...

  3. Spring Bean生命周期: Bean的实例化

    [Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...

  4. spring bean创建过程源码分析(上)

    大家好,我是@zzyang(小卓),一个热爱技术的90后.这篇文章主要是带大家了解一下spring bean的生命周期,对spring bean的创建过程源码分析.由于篇幅有限,这里说的都是主干流程, ...

  5. Spring Bean生命周期:Bean的初始化阶段

    [Spring Bean 生命周期系列]传送门 1.Spring Bean生命周期: Bean元信息的配置与解析阶段 2.Spring Bean生命周期: Bean的注册 3.Spring Bean生 ...

  6. Spring配置详解,Spring配置元信息详解,Spring配置大全及源码分析

    文章目录 一.Spring都可以配置哪些元信息 二.Spring Bean 配置元信息 1.GenericBeanDefinition 2.RootBeanDefinition 3.Annotated ...

  7. Spring Bean 生命周期之“我从哪里来”?懂得这个很重要

    Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...

  8. Spring Bean默认配置为单实例 Spring Bean生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...

  9. Spring框架:三种Spring Bean生命周期技术

    当使用术语"生命周期"时,Spring的家伙指的是您的bean的构造和破坏,通常这与Spring Context的构造和破坏有关. 在某些情况下,Bean生命周期的管理不是一件容易 ...

最新文章

  1. R语言构建xgboost模型:自定义损失函数(目标函数、loss function、object function)、评估函数(evaluation function)
  2. emoji mysql 转 unicode_unicode和emoji编码
  3. 记:返回方法参数的值(或多个值),
  4. Magento 创建优惠卷 Create unique coupon code in Magento
  5. 每隔10秒执行一次_(立下flag)每日10道前端面试题12 关于BOM十问
  6. thinkjs 学习笔记
  7. 《统计学习方法》—— 聚类方法(层次聚类和K均值聚类)
  8. Java NIO - Buffer 基础 -1
  9. Python dictionary 字典 常用法
  10. IMO船舶材料防火安全规范
  11. QCSPCChart SPC for JS
  12. 产品经理必备技能之业务流程图
  13. python做情感分析【中、英文都有】
  14. 适合点播应用的P2P加速系统
  15. 服务器c盘有个inetpub文件夹,关于C盘中的inetpub文件夹在win10电脑中的删除处理方法...
  16. vue项目打包出错:Unexpected token arrow «=>», expected punc «,» [static/js/chunk-1558f5a0.b64bfa00.js:626,2
  17. 怎么用一个元素实现十字架
  18. css动画和js动画比较!
  19. booth乘法器的原理与verilog实现
  20. 山东省2022 年专升本 计算机大纲(信息安全)

热门文章

  1. Vue进阶(十六):Vue 项目启动原理详解
  2. 我是如何把vue项目启动时间从70s优化到7秒的
  3. Turtlebot4入门教程-机械-Turtlebot4构件
  4. 软件测试——软件质量模型
  5. 网页返回顶部功能实现
  6. PPP协议实验及配置
  7. 解决AD导入dxf文件时报some entities were discarded during import?的问题
  8. servlet中forword与sendredirect的区别
  9. 解析边界测试技术——健壮性测试、最坏情况测试、健壮最坏情况测试
  10. 关于h5设配手机的一些jquery封装