Ⅹ.spring的點點滴滴--IObjectPostProcessor(對象後處理器)

承接上文

IObjectPostProcessor(對象後處理器)


前提是實現接口的對象註冊給當前容器 html

C#: java

  1. 經過繼承AbstractObjectFactory對象的AddObjectPostProcessor方法來添加
  2. 添加對象配置在xml中用IApplicationContext自動註冊

java: spring

  1. 經過配置在Javabean的xml中用ApplicationContext自動註冊
  2. 調用ConfigurableBeanFactoryaddBeanPostProcessor方法
  1. 接口名稱分別爲.net的Spring.Objects.Factory.Config.IObjectPostProcessor 與Java的org.springframework.beans.factory.config.BeanPostProcessorc#

    1. postProcessBeforeInitialization每一個對象的初始化方法被調用以前執行 (不過在c#中必需要有初始化方法,,初始化方法能夠是IInitializingObject接口 的AfterPropertiesSet方法,也能夠是init-method屬性指定的任意方法)
    2. postProcessAfterInitialization在對象的初始化方法返回以後執行
    3. 第一個參數都是當前實例,第二個參數是在容器中的名稱,返回值是當前要設置的實例
  2. 第一點的第一個子接口.net的Spring.Objects.Factory.Config.IInstantiationAwareObjectPostProcessor 與Java的org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessorpost

    1. postProcessBeforeInstantiation若是返回值不爲null是一個對象,那麼就是返回這個對象, 其中的factory-method方法就是這個方法來實現的,返回null就不改變原來的對象
    2. postProcessAfterInstantiation返回false會阻止對對象的屬性設置
    3. postProcessPropertyValues設置當前對象的屬性,能夠對在xml配置的屬性再次編輯 返回值類型必須是第一個參數的對象類型
  3. 第一點的第二個子接口.net的Spring.Objects.Factory.Config.IDestructionAwareObjectPostProcessor 與Java的org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor.net

    1. PostProcessBeforeDestruction爲對象銷燬的時候

執行順序爲: xml

  1. postProcessBeforeInstantiation
  2. postProcessAfterInstantiation
  3. postProcessPropertyValues
  4. postProcessBeforeInitialization(父接口)
  5. 調用初始化方法
  6. postProcessAfterInitialization(父接口)
  7. postProcessBeforeDestruction

相關文章
相關標籤/搜索