1 PostProcessorRegistrationDelegate 类简介 PostProcessorRegistrationDelegate 是一个静态工具类,包访问权限,AbstractApplicationContext's
org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:272) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:92) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors
ConfigurationClassPostProcessor.java:254) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:284) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE] at...org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:128) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE] at
ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.15.jar:5.3.15] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.15.jar:5.3.15] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.15.jar:5.3.15] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors
ConfigurationClassPostProcessor.java:232) ~[spring-context-5.1.16.RELEASE.jar:5.1.16.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:275) ~[spring-context-5.1.16.RELEASE.jar:5.1.16.RELEASE] at...org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:95) ~[spring-context-5.1.16.RELEASE.jar:5.1.16.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors
SpringBoot启动的时候 按照链路执行到方法 AbstractApplicationContext -> refresh ->invokeBeanFactoryPostProcessors -> PostProcessorRegistrationDelegate...ConfigurationClassPostProcessor#processConfigBeanDefinitions->ImportBeanDefinitionRegistrar#registerBeanDefinitions /** PostProcessorRegistrationDelegate
AbstractApplicationContext#refresh -> 2.激活各种BeanFactory处理器: invokeBeanFactoryPostProcessors -> 3.循环扫描bean定义:PostProcessorRegistrationDelegate...#invokeBeanFactoryPostProcessors -> 4.调用bean定义注册处理器:PostProcessorRegistrationDelegate#invokeBeanDefinitionRegistryPostProcessors
/:5.0.13.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:271) ~[spring-context-5.0.13.RELEASE.jar!.../:5.0.13.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:91) ~[spring-context-5.0.13.RELEASE.jar!
AbstractApplicationContext#refresh()方法 相信大家已经比较熟悉了 进入invokeBeanFactoryPostProcessors()调用BeanFactory后置处理器方法 进入PostProcessorRegistrationDelegate...juejin/drink 那么此方法会递归调用扫描com/juejin/drink下的所有类和目录 如果是需要注册的bean 那么放入new的LinkedHashSet中返回 经过如上步骤 程序会返回到PostProcessorRegistrationDelegate
org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:272) Disconnected from the target VM, address: '127.0.0.1:54751
ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors
/:4.3.10.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.10.RELEASE.jar!.../:4.3.10.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.10.RELEASE.jar!
ConfigurationClassPostProcessor.java:228) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:270) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE] at...org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:93) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE] at
而InitializingBean和DisposableBean接口是针对单个bean的 springboot refresh 各种post processor 在refresh中调用了PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...PostProcessorRegistrationDelegate是AbstractApplicationContext委托执行post processors任务的工具类。
beanName) throws BeansException; } 调用逻辑 AbstractAutowireCapableBeanFactory.initializeBean 注册逻辑 PostProcessorRegistrationDelegate.registerBeanPostProcessors...调用逻辑: AbstractApplicationContext.refresh() AbstractApplicationContext.invokeBeanFactoryPostProcessors PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors
this.beanFactoryPostProcessors; // 这些是直接注册到上下文中的BeanFactoryPostProcessor } 这里其实主要分为两部分逻辑: 借助后处理器委托类 PostProcessorRegistrationDelegate...1、后置处理委托类 这里又出现了一个新类 PostProcessorRegistrationDelegate,该类实际上是一个静态工具类,专门提供静态方法以用于处理上下文的后处理操作的,该类总共提供了两个方法...该方法用于对 BeanFactory 进行后置处理; registerBeanPostProcessors():该方法用于向上下文中注册 Bean 的后置处理器; 2、对BeanFactory进行后置处理 PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...这一步与调用 BeanFactory 一样,都通过后置处理委托类 PostProcessorRegistrationDelegate 进行: protected void registerBeanPostProcessors...(ConfigurableListableBeanFactory beanFactory) { PostProcessorRegistrationDelegate.registerBeanPostProcessors
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors...(PostProcessorRegistrationDelegate.java:220) at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors
228) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors...(PostProcessorRegistrationDelegate.java:272) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]...at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:92) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE] at
133) ~[spring-boot-test-2.1.5.RELEASE.jar:2.1.5.RELEASE] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:286) ~[spring-context-5.1.7.RELEASE.jar:5.1.7.RELEASE] at...org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors...(PostProcessorRegistrationDelegate.java:174) ~[spring-context-5.1.7.RELEASE.jar:5.1.7.RELEASE] at
领取专属 10元无门槛券
手把手带您无忧上云