springbean 生命周期
springbean 和java对象得区别:
1.对象:任何符合java语法规则实例化出来的对象
2.springbean: 是spring对普通对象进行了封装为BeanDefinition,beanclass可以理解为是上面的对象,其他的是否加载、描述等都是spring新增的属性信息
springbean实例化流程:
ConfigurationClassPostProcessor
1、BeanDefinitionRegistryPostProcessor-------扫描带注解@Cxxx class 组装成 beanDefinition(springbean)放到--map
2、BeanFactoryPostProcessor----------------修改beanmap
先执行子类BeanDefinitionRegistryPostProcessor---先执行spring内部提供然后执行程序员自己的
先执行spring内部-----用的是自己把一个BeanDefinitionRegistryPostProcessor的实现类ConfigurationClassPostProcessor的bd放到map当中了;想要执行先得实例化----我先从容器当中拿;如果有直接执行;如果没有spring 传一个BeanDefinitionRegistryPostProcessor类型给容器;容器就会从map当中找---找到一个ConfigurationClassPostProcessor;
假设这个时候你提供了一个BeanDefinitionRegistryPostProcessor YY 程序员提供了
在执行父类BeanFactoryPostProcessor----先执行spring内部提供然后执行程序员自己的
spring会先执行内部的,再执行外部程序员实现接口重写的,至于spring怎么知道内部和外部实现,是因为在生成beanmap的时候spring会循环三次,根据不过的条件过滤,spring内部类在启动的时候就不初始化了到了beanmap中。
详细请参考路神:https://blog.csdn.net/java_lyvee/article/details/101793774
springbean 生命周期的更多相关文章
- 深入源码理解SpringBean生命周期
概述 本文描述下Spring的实例化.初始化.销毁,整个SpringBean生命周期,聊一聊BeanPostProcessor的回调时机.Aware方法的回调时机.初始化方法的回调及其顺序.销毁方法的 ...
- 北京某大公司:SpringBean生命周期
<对线面试官>系列目前已经连载25篇啦!有深度风趣的系列! [对线面试官]Java注解 [对线面试官]Java泛型 [对线面试官] Java NIO [对线面试官]Java反射 & ...
- SpringBean生命周期
Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...
- SpringBean生命周期及作用域
bean作用域 在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象.在BeanDefinition对象中有scope 属性,就是 ...
- 回炉Spring--Bean生命周期及AOP
Spring容器: 在基于Spring的应用中,你的应用对象生存于Spring容器(container)中,Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期,从生存到死亡.(在 ...
- SpringBean生命周期-Version-v5.1.0.RELEASE
首先入口选定在org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons ...
- 进阶:spring-bean生命周期流程
Bean的生成过程 主要流程图 1. 生成BeanDefinition Spring启动的时候会进行扫描,会先调用org.springframework.context.annotation.Clas ...
- springBean生命周期----来自spring实战总结
1.Spring对bean进行实例化 2.Spring将值和bean的引用注入到bean对应的属性中(比如说注入到被依赖的bean的方法中或属性里) 3.如果bean实现了BeanNameAware接 ...
- 一步步实现:springbean的生命周期测试代码
转载. https://blog.csdn.net/baidu_37107022/article/details/76552052 1. 创建实体SpringBean public class Spr ...
随机推荐
- 数据结构与算法-python描述-双向链表
# coding:utf-8 # 双向链表的相关操作: # is_empty() 链表是否为空 # length() 链表长度 # travel() 遍历链表 # add(item) 链表头部添加 # ...
- 一文讲透Java序列化
本文目录 一.序列化是什么 二.为什么需要序列化 三.序列化怎么用 四.序列化深度探秘 4.1 为什么必须实现Serializable接口 4.2 被序列化对象的字段是引用时该怎么办 4.3 同一个对 ...
- 浏览器端如何使用VConsole.js调试代码?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 小球(总结sort和cmp函数、结构体排序)
问题 N: 小球(点击) 时间限制: 1 Sec 内存限制: 128 MB ...
- vsftpd服务器配置与使用
1.ftp简介 网络文件的共享主流的主要有三种,分别为ftp.nfs.samba ftp用于internet上的控制文件的双向传输 上传和下载的操作 下载 上传 将主机中的内容拷贝到计算机上 将文件从 ...
- linux使用组ID(SGID)共享文件
假如你有这样一个需求,一个小组内很多成员共同研究一个项目,为了这个项目我们需要分配一个具体的目录. 所有成员都拥有该目录的使用权限,可以互相操作成员的文件及内容.而且不允许其他人查看. 现在开始操作: ...
- 透过源码看懂Flink核心框架的执行流程
前言 Flink是大数据处理领域最近很火的一个开源的分布式.高性能的流式处理框架,其对数据的处理可以达到毫秒级别.本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程 ...
- 动作函数-web_url
web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "TargetFrame=&qu ...
- win10 VirtualBox无法打开,COM对象创建失败
https://blog.csdn.net/txwtech/article/details/101900464 VirtualBox无法打开,打开后提示创建COM对象失败: 被召者 RC: E_NOI ...
- 测试人员遇到Android APP崩溃和无响应手足无措?
这2天,在测APP兼容性时,遇到APP奔溃闪退的情况.将问题反馈给开发后,开发自己调试后,没有复现.由于又是远程,base地不在一块,我总不能把手机寄过去吧,那也太费事了. 所以就想到,提供明确的报错 ...