Bean后置处理器 – SmartInstantiationAwareBeanPostProcessor#determineCandidateConstructors
spring在创建对象(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance)的时候, 使用了这个 构造函数后置处理器, 用来选择使用哪个构造函数的.
所以这个后置处理器的执行时机是: 对象实例化之前执行
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#determineConstructorsFromBeanPostProcessors
@Nullable protected Constructor<?>[] determineConstructorsFromBeanPostProcessors(@Nullable Class<?> beanClass, String beanName) throws BeansException { if (beanClass != null && hasInstantiationAwareBeanPostProcessors()) { for (BeanPostProcessor bp : getBeanPostProcessors()) { if (bp instanceof SmartInstantiationAwareBeanPostProcessor) { SmartInstantiationAwareBeanPostProcessor ibp = (SmartInstantiationAwareBeanPostProcessor) bp; Constructor<?>[] ctors = ibp.determineCandidateConstructors(beanClass, beanName); if (ctors != null) { return ctors; } } } } return null; }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Bean后置处理器 – SmartInstantiationAwareBeanPostProcessor#determineCandidateConstructors
自学咖网 » Bean后置处理器 – SmartInstantiationAwareBeanPostProcessor#determineCandidateConstructors