BeanPostProcessor的运用场景
2021-08-11 17:36:43 0 举报
BeanPostProcessor的运用场景
作者其他创作
大纲/内容
BeanPostProcessor的运用场景4: populateBean()方法实例化创建后依赖注入(初始化): 类型:InstantiationAwareBeanPostProcessor 处理类:AutowiredAnnotationBeanPostProcessor 方法:ibp.postProcessPropertyValues() 处理属性、方法有@Autowired@Resource注解的依赖注入
BeanPostProcessor的运用场景1: determineConstructorsFromBeanPostProcessors() 实例化创建bean对象时构造器方法上是否有Autowired注解: 类型:SmartInstantiationAwareBeanPostProcessor 处理类:AutowiredAnnotationBeanPostProcessor 方法:ibp.determineCandidateConstructors()
BeanPostProcessor的运用场景3: populateBean()方法实例化创建后初始化前是否支持依赖注入(初始化): 类型:InstantiationAwareBeanPostProcessor 处理类:All 方法:ibp.postProcessAfterInstantiation() false不支持依赖注入; true支持依赖注入。
BeanPostProcessor的运用场景2: applyMergedBeanDefinitionPostProcessors() 实例化创建bean对象后搜集bean对象属性、方法上是否有注解: @PostConstruct @PreDestroy @Resource、@Autowired @Value 类型:MergedBeanDefinitionPostProcessor 处理类:AutowiredAnnotationBeanPostProcessor: @Autowired @Value CommonAnnotationBeanPostProcessor: @PostConstruct @PreDestroy @Resource 方法:bdp.postProcessMergedBeanDefinition();
BeanPostProcessor的运用场景5: getEarlyBeanReference()方法初始化循环依赖注入: 类型:SmartInstantiationAwareBeanPostProcessor 处理类:All 方法:ibp.getEarlyBeanReference() AbstractAutoProxyCreator:需要代理的创建代理对象;
BeanPostProcessor的运用场景6: initializeBean()方法初始化invokeInitMethods()方法前: 类型:BeanPostProcessor 处理类:All 方法:processor.postProcessBeforeInitialization() ApplicationContextAwareProcessor:执行了一堆的Aware接口; ConfigurationClassPostProcessor:执行ImportAware接口; InitDestroyAnnotationBeanPostProcessor: 执行@PostConstruct注解的方法;
BeanPostProcessor实例化、排序、注册、:根据BeanDefinition实例化:span style=\"font-size: inherit;\
BeanPostProcessor的运用场景7: initializeBean()方法初始化invokeInitMethods()方法后: 类型:BeanPostProcessor 处理类:All 方法:processor.postProcessAfterInitialization() AbstractAutoProxyCreator:需要代理的创建代理对象; ApplicationListenerDetector: 是监听器类型,加入到广播器(监听器列表);
0 条评论
下一页