docs/Spring全家桶/Spring源码分析/Spring组件分析/Spring组件之BeanPostProcessor.md
BeanPostProcessor Ϊ spring bean ĺô BeanFactoryPostProcessor``BeanPostProcessor Զ bean в
spring BeanPostProcessor bean ĴִУִʱ:
bean ĴУBeanPostProcessor һִй 8 Σ
һЩִе BeanPostProcessor
BeanPostProcessorBeanPostProcessor ǰʲô BeanPostProcessor£
public interface BeanPostProcessor {
/**
* ʼǰִ
*/
@Nullable
default Object postProcessBeforeInitialization(Object bean, String beanName)
throws BeansException {
return bean;
}
/**
* ʼִ
*/
@Nullable
default Object postProcessAfterInitialization(Object bean, String beanName)
throws BeansException {
return bean;
}
}
BeanPostProcessor һӿڣ bean ʼǰһЩǿʵӿڣдͿ bean ʼǰһЩˡ
BeanPostProcessor AbstractApplicationContext#registerBeanPostProcessors עᡣ
ʵϣBeanPostProcessor ڶӽӿڣЩǶͳΪ BeanPostProcessorĵҪĿľЩ BeanPostProcessor
BeanPostProcessorAbstractAutowireCapableBeanFactory#resolveBeforeInstantiationInstantiationAwareBeanPostProcessor#postProcessBeforeInstantiationAbstractAutoProxyCreator#postProcessBeforeInstantiationɴAbstractAutowireCapableBeanFactory#determineConstructorsFromBeanPostProcessorsSmartInstantiationAwareBeanPostProcessor#determineCandidateConstructorsAutowiredAnnotationBeanPostProcessor#determineCandidateConstructorsƶϹ췽AbstractAutowireCapableBeanFactory#applyMergedBeanDefinitionPostProcessorsMergedBeanDefinitionPostProcessor#postProcessMergedBeanDefinitionApplicationListenerDetector#postProcessMergedBeanDefinitionռ ApplicationListenerAutowiredAnnotationBeanPostProcessor#postProcessMergedBeanDefinitionұ @Autowired``@Value``@Inject ǵ뷽CommonAnnotationBeanPostProcessor#postProcessMergedBeanDefinitionұ @Resource ǵ뷽InitDestroyAnnotationBeanPostProcessor#postProcessMergedBeanDefinitionұ @PostConstruct``@PreDestroy ǵķAbstractAutowireCapableBeanFactory#doCreateBeanSmartInstantiationAwareBeanPostProcessor#getEarlyBeanReferenceAbstractAutoProxyCreator#getEarlyBeanReferenceǰɴAbstractAutowireCapableBeanFactory#populateBeanInstantiationAwareBeanPostProcessor#postProcessAfterInstantiationAbstractAutowireCapableBeanFactory#populateBeanInstantiationAwareBeanPostProcessor#postProcessPropertiesAutowiredAnnotationBeanPostProcessor#postProcessProperties䱻 @Autowired``@Value``@Inject ǵ뷽CommonAnnotationBeanPostProcessor#postProcessProperties䱻 @Resource ǵ뷽ImportAwareBeanPostProcessor#postProcessPropertiesΪ EnhancedConfiguration ʵ beanFactoryAbstractAutowireCapableBeanFactory#applyBeanPostProcessorsBeforeInitializationBeanPostProcessor#postProcessBeforeInitializationApplicationContextAwareProcessor#postProcessBeforeInitialization XxxAware ӿڵķBeanValidationPostProcessor#postProcessBeforeInitialization JSR-303 УImportAwareBeanPostProcessor#postProcessBeforeInitialization ImportAware ӿڵķInitDestroyAnnotationBeanPostProcessor#postProcessBeforeInitializationñ @PostConstruct ǵķLoadTimeWeaverAwareProcessor#postProcessBeforeInitialization LoadTimeWeaverAware ӿڵķServletContextAwareProcessor#postProcessBeforeInitialization ServletContextAware ӿڵķ servletContext servletConfigAbstractAutowireCapableBeanFactory#applyBeanPostProcessorsAfterInitializationBeanPostProcessor#postProcessAfterInitializationAbstractAdvisingBeanPostProcessor#postProcessAfterInitialization AopInfrastructureBeanAbstractAutoProxyCreator#postProcessAfterInitializationɴAdvisorAdapterRegistrationManager#postProcessAfterInitializationǰ bean AdvisorAdapterעApplicationListenerDetector#postProcessAfterInitializationǰ bean ApplicationListenerӵ¼BeanPostProcessorChecker#postProcessAfterInitialization˸ logBeanValidationPostProcessor#postProcessAfterInitialization JSR-303 УJmsListenerAnnotationBeanPostProcessor#postProcessAfterInitialization @JmsListener עScheduledAnnotationBeanPostProcessor#postProcessAfterInitialization @Scheduled עSimpleServletPostProcessor#postProcessAfterInitialization Servlet ʵ÷ Servlet#init(ServletConfig)һܽЩ BeanPostProcessor:
ԭӣhttps://my.oschina.net/funcy/blog/4597551 ߸ˮƽд֮ӭָԭףҵתϵȨҵתע