1. 程式人生 > >InitializingBean,FactoryBean介面在spring原始碼中的使用程式碼片段

InitializingBean,FactoryBean介面在spring原始碼中的使用程式碼片段

1.InitializingBean介面為bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,
      凡是繼承該介面的類,在初始化bean的時候會執行該方法.
      該方法將在所有的屬性被初始化後呼叫,但是會在init前呼叫。
	  	  
2.在spring-orm.jar中的SqlMapClientFactoryBean類就使用到InitializingBean介面。
  org.springframework.orm.ibatis.SqlMapClientFactoryBean 類實現了FactoryBean, InitializingBean。
  重寫InitializingBean 介面的afterPropertiesSet 方法 得到  com.ibatis.sqlmap.client.SqlMapClient sqlMapClient 例項物件
  
  重寫FactoryBean的getObject()方法,返回由InitializingBean介面的afterPropertiesSet方法得到com.ibatis.sqlmap.client.SqlMapClient例項物件.
  
  
以上程式碼說明:在實際操作spring與ibatis整合過程中,經常遇到在spring配置檔案中宣告的是
org.springframework.orm.ibatis.SqlMapClientFactoryBean例項,但是在使用的時候卻能轉為SqlMapClient使用
這是因為Spring的機制的緣故。簡單的說:
    如果一個bean實現了 FactoryBean介面,那麼Spring就不會把該bean本身例項化並返回,而是返回該bean的getObject()返回的物件。