BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor以及BeanPostProcessor執行先後順序

1、BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor以及BeanPostProcessor都屬於Spring的後置處理器,可以實現它們以達到動態註冊bean定義,動態修改bean定義,以及動態修改bean。

2、BeanDefinitionRegistryPostProcessor繼承接口BeanFactoryPostProcessor,該接口新增postProcessBeanDefinitionRegistry方法,方法參數是BeanDefinitionRegistry對象,BeanDefinitionRegistry對象是bean定義的保存中心。

3、BeanFactoryPostProcessor是一個接口,它允許自定義修改應用程序上下文的bean定義,在基於bean factory上調整上下文的bean屬性值。BeanFactoryPostProcessor可以與bean交互並修改bean定義,但從不使用bean實例。

4、BeanPostProcessor也是一個接口,它允許動態修改應用程序上下文的bean,這時候bean已經實例化成功。

5、三者執行順序:BeanDefinitionRegistryPostProcessor優先於BeanFactoryPostProcessor執行,BeanFactoryPostProcessor優先於BeanPostProcessor執行。

6、代碼示例:

BeanDefinitionRegistryPostProcessor實現類

BeanFactoryPostProcessor實現類

BeanPostProcessor實現類

執行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章