美文网首页
Spring BeanFactoryPostProcessor

Spring BeanFactoryPostProcessor

作者: 丨飞翔的蛋花丨 | 来源:发表于2017-11-28 17:15 被阅读27次

    在通过BeanFactoryPostProcessor来手动干预springbean加载状态时,有两点需要注意:

    1. 是否需要实现PriorityOrdered接口。
      spring处理BeanFactoryPostProcessor类型的bean,主要是通过AbstractApplicationContext中的invokeBeanFactoryPostProcessors来处理,主要代码如下:


      image.png

      实现了PriorityOrdered接口的Processor会放在第一优先级队列中执行,并且通过设置优先级,可以执行Processor的执行顺序(注意:Spring自带的Processor都被默认设置了最低优先级)。

    2. 是否需要初始化bean
      ListableBeanFactory中有个重要的接口getBeanNamesForTypes,该接口支持两种传参类型,若不希望在调用接口后会触发bean的初始化工作,需使用String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit),并将最后的allowEagerInit参数置为true。

    相关文章

      网友评论

          本文标题:Spring BeanFactoryPostProcessor

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