快速使用指南

介入 Spring Boot 加载 ApplicationContext 流程

JAR 包介入流程, 在 META-INF/spring.factories 文件中配置

ApplicationContextInitializer

ApplicationListener

EnvironmentPostProcessor

PropertySourceLoader

致力于提高 JAR 包使用体验者,可以介入 FailureAnalyzers 体系

应用介入

介入 BeanFacoty 流程

介入 BeanDefinition 注册或者魔改流程,只需提供一个实现 BeanDefinitionRegistryPostProcessor 接口的 Bean 即可,如果想提高优先级,可以再补充实现 Ordered 接口。如果只想介入非 FactoryBean 的处理,也可以实现 **MergedBeanDefinitionPostProcessor。**如果想优先级比 SpringBoot 的 ConfigurationClassPostProcessor 还高,可以实现成 ApplicationContextInitializer 或者 ApplicationListener 并实现 PriorityOrdered 接口。

介入 Bean 生命流程

介入 Bean 的生命流程,旨在增强 Bean 功能(如注入 Aware)、提供生命函数、@EventListener 函数

Aware

BeanNameAware, BeanClassLoaderAware, BeanClassLoaderAware, EnvironmentAware, EmbeddedValueResolverAware, ResourceLoaderAware, ApplicationEventPublisherAware, MessageSourceAware, ApplicationContextAware

init phase

在某个函数方法上注解 @postConstruct