Spring常用的擴展接口

Spring不僅提供了一個進行快速開發的基礎框架,而且還提供了很多可擴展的接口,用於滿足一些額外的開發需求,本篇將對常用的可擴展接口進行歸納總結。

1.InitializingBean接口 
InitializingBean接口中只有一個afterPropertiesSet方法,從方法的名稱上很容易理解,這個方法是在Bean的屬性都設置值後被調用,用於完成一些初始化工作。當然,在Spring的配置文件中init-method的配置也是在Bean的屬性都設置值後被調用,用於完成一些初始化工作,不過在執行順序上,接口的方法先於配置。值得注意的是,這兩種方式都是用於完成一些初始化工作,所以相應的方法中不要編寫一些複雜且執行時間很長的邏輯。

2.DisposableBean接口 
DisposableBean接口中只有一個destroy方法,該方法會在Bean被銷燬、生命週期結束之前被調用,用於做一些銷燬的收尾工作。同樣,在Spring的配置文件中destroy-method配置也完成同樣的工作,不過在執行順序上,接口的方法先於配置。

3.ApplicationContextAware接口 
ApplicationContextAware中只有一個setApplicationContext方法。實現了ApplicationContextAware接口的類,可以在該Bean被加載的過程中獲取Spring的應用上下文ApplicationContext,通過ApplicationContext可以獲取Spring容器內的很多信息。

4.BeanFactoryAware接口 
BeanFactoryAware接口中只有一個setBeanFactory方法。實現了BeanFactoryAware接口的類,可以在該Bean被加載的過程中獲取加載該Bean的BeanFactory,同時也可以獲取這個BeanFactory中加載的其它Bean。

5.FactoryBean接口 
FactoryBean接口可以實現Bean實例化的個性定製,讓Spring容器加載我們想要的Bean。實現了FactoryBean接口的類,可以通過實現getObject方法,實現加載我們想要的Bean。

6.BeanPostProcessor接口 
BeanPostProcessor接口中有兩個方法,分別爲postProcessBeforeInitialization和postProcessAfterInitialization。實現了BeanPostProcessor接口的類,會在每個Bean初始化(即調用setter)之前和之後,分別調用這個類中的postProcessBeforeInitialization方法和postProcessAfterInitialization方法,實現初始化的邏輯控制。

7.InstantiationAwareBeanPostProcessor接口 
InstantiationAwareBeanPostProcessor接口中,常用的方法是postProcessBeforeInstantiation和postProcessAfterInstantiation。每個Bean的實例化(即調用構造函數)之前和之後,會分別調用實現了該接口的類中的postProcessBeforeInstantiation和postProcessAfterInstantiation方法。

8.BeanFactoryPostProcessor接口 
BeanFactoryPostProcessor接口中只有postProcessBeanFactory方法。實現了該接口的類,可以在Bean被創建之前,獲取容器中Bean的定義信息,並且可以進行修改。實現類中的postProcessBeanFactory方法只會被執行一次,且先於BeanPostProcessor接口的方法。

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