zoukankan      html  css  js  c++  java
  • 16、生命周期-BeanPostProcessor原理

    16、生命周期-BeanPostProcessor原理

    16.1 打断点运行postProcessBeforeInitialization

    可以看到先执行的顺序为:

    1. applyBeanPostProcessorsBeforeInitialization
    2. invokeInitMethods
    3. applyBeanPostProcessorsAfterInitialization

    16.2 BeanPostProcessor原理

    • 遍历得到容器中所有的BeanPostProcessor ,挨个执行 postProcessBeforeInitialization,一旦返回null,跳出for循环,不会执行后面的BeanPostProcessor
    populateBean() 给bean进行属性赋值
    initializeBean(){
        applyBeanPostProcessorsBeforeInitialization();
        invokeInitMethods();    // 执行自定义初始化
        applyBeanPostProcessorsAfterInitialization();
    }
    
    
    @Override
    public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName)
    		throws BeansException {
    
    	Object result = existingBean;
    	for (BeanPostProcessor processor : getBeanPostProcessors()) {
    		Object current = processor.postProcessBeforeInitialization(result, beanName);
    		if (current == null) {
    			return result;
    		}
    		result = current;
    	}
    	return result;
    }
    
  • 相关阅读:
    触摸屏网站开发系列(一)-ios web App应用程序(ios meta)
    jQuery Mobile 入门教程
    html的视频插件 (转)
    网页布局流式布局
    2.05-random-uesr-proxy
    2.04-proxy-handler
    2.03-handler_openner
    2.02-request_header_two
    2.01-request_header
    1.03-get_params2
  • 原文地址:https://www.cnblogs.com/Grand-Jon/p/10030833.html
Copyright © 2011-2022 走看看