myBatis3與spring整合之SqlSessionFactoryBean

轉自:http://fhd001.iteye.com/blog/1125528


myBatis3與spring整合之SqlSessionFactoryBean

----------

 

在基本的MyBatis中,session工廠可以使用SqlSessionFactoryBuilder來創建。在MyBatis-Spring中,使用SqlSessionFactoryBean來替代。

SqlSessionFactoryBean實現了spring的FactoryBean接口。這就說明由spring最終創建的bean不是SqlSessionFactoryBean本身,而是工廠類的getObject()返回的方法結果。這種情況下,spring將會在應用啓動時爲你創建SqlSessionFactory對象,然後將它以SqlSessionFactory爲名來存儲。

在一般的MyBatis-spring用法中,你不需要直接使用SqlSessionFactoryBean或其對應的SqlSessionFactory。相反,session工廠將會被注入到MapperFactoryBean或其它擴展了SqlSessionDaoSupport的DAO中。

 

屬性

SqlSessionFactory有一個單獨的必須屬性,就是JDBC的DataSource。這可以是任意的DataSource。其配置應該和其它spring數據庫連接是一樣的。

一個通用的屬性是configLocation,它是用來指定MyBatis的xml配置文件路徑的。如果基本的MyBatis配置需要改變,那麼這就是一個需要它的地方。通常這會是<settings>或<typeAliases>的部分。要注意這個配置文件不需要是一個完整的MyBatis配置。確定地說,任意環境,數據源和myBatis的事務管理器都會被忽略。SqlSessionFactoryBean會創建它自己的,使用這些值定製MyBatis的Environment時是需要的。

如果myBatis映射器xml文件在和映射器類相同的路徑下不存在,那麼另外一個需要配置文件的原因就是它了。使用這個配置,有兩種選擇。第一是手動在myBatis的xml配置文件中使用<mappers>部分來指定類路徑。第二是使用工廠bean的mapperLocations屬性。mapperLocations屬性使用一個資源位置的list。這個屬性可以用來指定myBatis的xml映射器文件的位置。如:

Java代碼  收藏代碼
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.     <property name="dataSource" ref="dataSource" />  
  3.     <property name="configLocation" value="classpath:mybatis.xml" />  
  4.     <property name="mapperLocations" value="classpath:mapper/**/*.xml" />  
  5. </bean>  

 在容器環境管理事務中,一個可能需要的屬性是transactionFactoryClass

 


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