MyBatis在Spring中簡單配置

一、sqlSessionFactory的配置

dataSource屬性

該屬性必須配置,多數據源時會有多個dataSource,同時也需要配置多個sqlSessionFactory來對應。

mapperLocations屬性

配置該屬性後,sqlSessionFactory會自動掃描該路徑下的所有文件並解析。

該路徑支持多個,可以用,;\t\n進行分割。

每一個路徑都可以用直接的包路徑,或者Ant風格的表達式。

configLocation屬性

上面例子中並沒有使用該屬性,當SqlSessionFactoryBean提供的配置不能滿足使用時,你可以使用mybatis-config.xml配置文件配置其他屬性,然後通過configLocation屬性指定該配置的路徑,SqlSessionFactoryBean會使用該配置文件創建Configuration。

typeAliasesPackage屬性

該屬性可以給包中的類註冊別名,註冊後可以直接使用類名,而不用使用全限定的類名(就是不用包含包名)。

該屬性可以配置多個,可以用,;\t\n進行分割。但是不支持Ant風格的路徑。

plugins屬性

該屬性可以配置MyBatis的攔截器,攔截器的配置順序會影響攔截器的執行順序。

從上往下的攔截器,實際的執行順序是這樣,第一個攔截器會最後執行,最後一個會首先執行。

然後出攔截器的順序和配置的順序一致,第一個最先返回,最後一個最後返回。

就以上面的配置爲例,一個簡單的執行順序圖如下:



執行順序

這些攔截器執行的順序都是環繞型,不要簡單理解爲簡單的順序執行。

從配置順序來看,第一個配置的在最裏面,後面的依次環繞上一個攔截器。


二、MapperScannerConfigurer的配置

爲了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 編寫數據訪問對象 (DAO)的代碼,MyBatis-Spring 提供了一個動態代理的實現:MapperFactoryBean。這個類 可以讓你直接注入數據映射器接口到你的 service 層 bean 中。當使用映射器時,你僅僅如調 用你的 DAO 一樣調用它們就可以了,但是你不需要編寫任何 DAO 實現的代碼,因爲 MyBatis-Spring 將會爲你創建代理。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.xxx.mybatis.mapper"/>
    <property name="annotationClass" value="XXX"/>
    <property name="sqlSessionFactoryBeanName" ref="sqlSessionFactory"/>
</bean>

basePackage屬性

basePackage可以寫多個,可以用,;\t\n進行分割。

每一個路徑都可以用直接的包路徑,或者Ant風格的表達式。

annotationClass屬性

該屬性實際上就是起到一個過濾的作用,如果設置了該屬性,那麼MyBatis的接口只有包含該註解,纔會被掃描進去。

sqlSessionFactoryBeanName屬性

這個屬性一般都用不到,只有當你配置多數據源的時候,這是會有多個sqlSessionFactory,你就需要通過該屬性來指定哪一個sqlSessionFactory(值爲SqlSessionFactoryBean <bean>配置中的id屬性)

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