Spring容器的创建过程之如何注册BeanPostProcessor详解
作者:煎丶包 发布时间:2022-02-17 08:39:09
注册BeanPostProcessor
refresh()
调用registerBeanPostProcessors(beanFactory)
方法,注册Bean的后置处理器,后置处理器是用来拦截bean创建过程的。
不同接口类型的BeanPostProcessor
,即继承了BeanPostProcessor
接口的子接口,在Bean创建前后的执行时机是不一样的
BeanPostProcessor
DestructionAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor
SmartInstantiationAwareBeanPostProcessor
MergedBeanDefinitionPostProcessor
首先获取所有的BeanPostProcessor
后置处理器都默认可以通过PriorityOrdered
、Ordered
这两个接口来指定执行优先级
先注册实现了priorityOrdered
优先级接口的BeanPostProcessor
,调用registerBeanPostProcessors()
方法进行注册
registerBeanPostProcessors()
方法调用addBeanPostProcessor()
方法将BeanPostProcessor
添加到BeanFactory
中
再注册实现了Ordered
优先级接口的BeanPostProcessor
最后注册没有实现任何优先级接口的BeanPostProcessor
最终注册MergedBeanDefinitionPostProcessor
类型的BeanPostProcessor
还会注册一个ApplicationListenerDetector
来在Bean创建完成后检查是否ApplicationListener
,如果是,就会把这个 * bean放在容器中保存起来
来源:https://blog.csdn.net/qq_39794062/article/details/117409464
猜你喜欢
- Java IDE工具提供了多种用户独特需求和个人偏好来创建编程环境的方法。Java框架能够简化程序员的工作。这些框架被设计和开发用于在任何服
- Mybatis-Plus是一个优秀的Mybatis增强工具,目前更新到3.1.1。Mybatis-Plus原生提供了很多单表操作的方法,极大
- 一、前言我们在日常开发中,避不开的就是参数校验,有人说前端不是会在表单中进行校验的吗?在后端中,我们可以直接不管前端怎么样判断过滤,我们后端
- java读取文件内容,解析Json格式数据一、读取txt文件内容(Json格式数据) public static
- 数据库里面表的字段中带有“”_“下划线,我们知道插件默认的是将这些带有下划线的字段默认的变成“优美的驼峰式”的。表是肯定不能动的,实体类的字
- 本文实例为大家分享了安装和配置maven环境的具体步骤,供大家参考,具体内容如下下载maven:1.进入官网下载:http://maven.
- 线程池中ThreadGroup的坑在Java中每一个线程都归属于某个线程组管理的一员,例如在主函数main()主工作流程中产生一个线程,则产
- 我们还是用一个小例子来看看自定义View和自定义属性的使用,带大家来自己定义一个带进度的圆形进度条,我们还是先看一下效果吧从上面可以看出,我
- Java线程分为两类分别为daemon线程(守护线程)和User线程(用户线程),在JVM启动时候会调用main函数,main函数所在的线程
- 原始Spring开发Person.java准备Person.java类:package com.jektong.spring;public
- 前言这是该工具的github地址:https://github.com/pingfangushi/screw一、引入pom.xml依赖<
- 导读Lombok:可以让你的POJO代码特别简洁,不止简单在BO/VO/DTO/DO等大量使用,还有设计模式,对象对比等MybatisPlu
- Seata介绍Seata:Simple Extensible Autonomous Transaction Architecture,简易可
- 本文实例为大家分享了java仿windows记事本小程序的具体代码,供大家参考,具体内容如下import java.awt.Checkbox
- 本文作者:Spring_ZYL文章来源:https://blog.csdn.net/gozhuyinglong版权声明:本文版权归作者所有,
- 一、javaBeanjavaBean:一种类的规格编写规范javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称
- Arrays.asList()方法的作用是将数组或一些元素转为集合,而你得到的集合并不是我们通常使用的List集合,而是Arrays里面的一
- 经过一番搜索发现,java操纵excel文件常用的有jxl和poi两种方式,孰好孰坏看自己需求而定。其中最主要的区别在于jxl不支持.xls
- 上帝之火本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼。每次我都能联想到带来上帝之火的希腊之神,普罗米修斯。而这
- 前言Java 中常规的集合工具,相比大家都熟练于胸,但是如果说有一个集合类你不一定知道或者说肯定没用过,你相不相信呢?今天跟大家介绍的就是&