Spring后置处理器 | 处理器类型 | 说明 |
ConfigurationClassPostProcessor | bean定义注册表后置处理器 | 在Spring Boot中,从包含了@SpringBootApplication注解的引导类开始,扫描并注册bean定义至bean工厂。在本文案例中,MapperScannerConfigurer的bean定义便是在此时被注册的。 |
MapperScannerConfigurer | bean定义注册表后置处理器 | 扫描@Mapper注解标注的映射器接口,生成并注册对应的MapperFactoryBean工厂bean定义。支持使用PropertySourcesPlaceholderConfigurer等处理器对自身的属性字段进行配置项解析。 |
PropertySourcesPlaceholderConfigurer | bean工厂后置处理器 | 遍历bean定义,解析其中的配置项占位符。 |
ConfigurationBeanFactoryMetaData | bean工厂后置处理器 | 遍历bean定义,记录工厂方法等信息。 |
HsfConsumerPostProcessor | bean工厂后置处理器 | 遍历bean定义,对于被@HsfConsumer注解标注的属性字段,生成并注册对应的HSFSpringConsumerBean工厂bean定义。 |
AutowiredAnnotationBeanPostProcessor | bean后置处理器 | 解析@Value注解中的配置项占位符。解析器之一由PropertySourcesPlaceholderConfigurer提供。 |
ConfigurationPropertiesBindingPostProcessor | bean后置处理器 | 解析@ConfigurationProperties注解中的配置项。对@Bean方法级别的注解解析借助ConfigurationBeanFactoryMetaData中的bean工厂方法记录完成。 |
为了方便读者理解,以上表格整理了文中提到的各类Spring后置处理器,以及它们彼此的关联。可以看到,Spring框架在给我们提供了很多开发便利的同时,其整体的设计还是较为复杂的。在日常开发中,我们可能时不时会遇到一些「疑难杂症」,而此时对框架的深入理解能帮助我们高效地解决问题。此外,善用对Spring代码的调试,也能帮助我们在纷繁的思路或线索中定位到问题原因。最后,由于写作时间仓促,且Spring不同版本间可能存在一定的行为差异,文中如有错漏之处还请读者包涵指正。