分析了Spring IOC的源代码,主要基于Spring IOC的整体源代码过程,并且不涉及太多细节。接下来,将分析Spring IOC的内置后处理器的源代码,并将进行分析和汇总。春季有两种类型的构建处理器,即Bean的后处理器和BeanFactory的后处理器。本文将总结并分析这两种类型的后处理器。
在这里,您将获得两个存储BeanFactoryPostProcessor的对象,并将呼叫传递给下一个呼叫,1。当前的Bean Factory,2。自定义AddBeanFactoryPostProcessor的自定义的BeanFactoryPostProcessor。
该方法分为两部分。第一部分调用所有实现BeanDefinitionRegization接口的后处理器,第二部分处理BeanFactoryPostProcestor后处理器。BeanFactoryPostProcessor的自定义后处理器;
InvokeBeanDefininionistryPostProcessors
输入构型构图callizationCallizationColdPostProcessor的后期定义性识别方法。如前所述,ConfigurationClassPostProcessor还实现了BeanDefinitionRegistryPostPostPostPostpaster的接口。
configurationClassParser的解析方法
它是如此的深~~现在,它已经是一个真实的分析配置类。
DoProcessConfigurationClass Clore仅查看@componentscan注释的实现。
componentscanparser.parse方法
Scanner.doscan
FindCandidateComponents
InvokeBeanFactoryPostProcessors
所有后处理器都将被要求进行周期。这里没有定制的后处理器。因此,只有一个构建的后处理器,即ConfigurationClassPostProcessor后处理器,该处理器主要用于分析配置类。输入后处理方法。
使用CGLIB在EnhanceConfigurationClasses方法中代表配置类,因为@Bean方法会创建一个bean实例。插入一个问题:为什么在此处使用动态代理?例如:配置类和不@configuration之间的差异。
然后查看源代码:
增强型摄影类
插入:确定是否是完整的配置类。