美文网首页
Spring-BeanPostProcessor的学习

Spring-BeanPostProcessor的学习

作者: 傻狗羊 | 来源:发表于2020-09-01 16:23 被阅读0次

简述

spring中,有两个核心Processor接口:BeanPostProcessorBeanFactoryPostProcessor

spring boot中,有个核心Processor接口:EnvironmentPostProcessor

其实,Processor 没有什么原理,主要原理就是这个翻译上:处理机、加工机。
下面介绍一下 SpringSpring Boot 中的核心 Processor 类的原理,帮助理解 Spring 的设计思路。


spring中的Processor

Spring 设计时考虑的设计模式的开闭原则,因此提供了大量的扩展接口,其中就有 BeanPostProcessorBeanFactoryPostProcessor

  • BeanPostProcessor : 对容器中的 Bean 进行后处理,增强 Bean 的功能,在bean初始化前后进行操作
  • BeanFactoryPostProcessor :对 Spring 容器本身进行后处理,增强容器的功能

区别:

  1. BeanPostProcessor 执行顺序在 BeanFactoryPostProcessor 之后
  2. BeanPostProcessorSpring 容器加载 Bean 的定义文件并且实例化 Bean 之后,在容器执行 InitializingBean 之前执行的。
  3. BeanFactoryPostProcessorSpring 容器加载 Bean 的定义文件之后,在执行 Bean 实例化之前执行的。

BeanFactoryPostProcessor 流程图如下:

f45664ef.png

Spring 容器加载 Bean 的定义文件执行 BeanFactoryPostProcessor执行 Bean 实例化

BeanPostProcessor 流程图如下

c3858515.png

BeanPostProcessor【interface】,bean的后置处理器

public interface BeanPostProcessor {

    /**
     * 在bean初始化之前工作
     * 生命周期:在任何 [初始化方法] 调用之前执行
     */
    @Nullable // spring5 新特性,允许为空
    default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    /**
     * 在bean初始化方法调用之后工作
     * 
     */
    @Nullable // spring5 新特性,允许为空
    default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

}

spring底层对BeanPostProcessor的使用

相关文章

  • Spring-BeanPostProcessor的学习

    简述 在spring中,有两个核心Processor接口:BeanPostProcessor和BeanFactor...

  • 学习的学习

    “三分钟的热情相信大家都有,但是能够重复思考一个概念,一个知识点,并把它吃透掌握才是大部分人稀缺的能力。”李笑来老...

  • 学习的学习

    不只是学习,听完是不够的。 还要把学到的东西变成方法论、清单式的条目出来去刻意练习。去用,去不断的实践。 有个词 ...

  • 学习的真相|学习「学习」再学习

    不知不觉间,笑来老师在“好的家庭教育”讲的新课《学习的真相》,已经更新到了第12课,关于“学习的真相”这门课,我认...

  • 元学习——关于学习的学习

    元学习是一门关于如何学习的课程。 首先理清几个概念 1、学习是拼图 学习并不是线性的,相反学习是一张信息拼图,类似...

  • 学习,就是学习学习的态度!

    学习,从来都需要态度! 没有了态度,你来了,也不过是躯体入场,思想游荡! 那就学习学习的态度喽!

  • 学习学习再学习的成长

    女儿快要中考了,随着时间的临近,中考紧张气氛越来越浓。成绩一直不太理想的她,也有了紧迫感,不时表露出来“书到用时方...

  • 学习,学习的方法

    学习一门学科首先掌握这个领域的一些基础理论和概念 然后学习一些高级的组合框架,这些框架是一些能够解决这个领域通用问...

  • 08 学习的学习

    1 现代人,基本都是读书人,我们从小学,甚至是幼儿园就开始读书写字一直到大学毕业,少说也有16年,但是很多人都不知...

  • 学习学习的方法

    1.效率的本质 很多人常常拒绝学习,拒绝学习的理由和痴迷于学习的理由一样——不知道它有什么用。 学习是投资回报率最...

网友评论

      本文标题:Spring-BeanPostProcessor的学习

      本文链接:https://www.haomeiwen.com/subject/jqvvsktx.html