• 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;
    }
    
  • 相关阅读:
    KETTLE集群搭建
    初识spark
    利用python操作mrjob实例---wordcount
    hive 优化 (转)
    hive权限管理
    hadoop常用操作命令
    hive的分桶
    Hive HQL基本操作
    hadoop--hive数据仓库
    Hive配置项的含义详解
  • 原文地址:https://www.cnblogs.com/Grand-Jon/p/10030833.html
Copyright © 2020-2023  润新知