spring--ImportBeanDefinitionRegistrar


    ImportBeanDefinitionRegistrar是spring對外提供動態註冊beanDefinition的接口,spring內部大部分套路也是用該接口進行動態註冊beanDefinition的。

    ImportBeanDefinitionRegistrar接口不是直接註冊Bean到IOC容器,它的執行時機比較早,準確的說更像是註冊Bean的定義信息以便後面的Bean的建立。
    ImportBeanDefinitionRegistrar接口提供了registerBeanDefinitions方便讓子類進行重寫。該方法提供BeanDefinitionRegistry類型的參數,讓開發者調用BeanDefinitionRegistry的registerBeanDefinition方法傳入BeanDefinitionName和對應的BeanDefinition對象,直接往容器中註冊。

    ImportBeanDefinitionRegistrar 一般和@Import註解配合使用。@Import會將ImportBeanDefinitionRegistrar的實現類注入到spring 容器中。從而spring 容器能夠遍歷調用 ImportBeanDefinitionRegistrar接口的 registerBeanDefinitions方法。

     注意:這裏咱們能夠註冊FactoryBean的BeanDefinition,給FactoryBean設置動態參數。將要註冊的真正要注入的bean做爲參數,而後讓spring容器利用這個FactoryBean的構造方法進行實例化。(經過setAutowireMode(3))mybatis整合spring的底層就是這麼實現的。




spring

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息