MyBatis Spring MapperScannerConfigurer 配置

來源:互聯網
上載者:User

標籤:factory   XML   pac   marker   命名   tis   strong   名稱   就是   

沒有必要在 Spring 的 XML 設定檔中註冊所有的映射器。相反,你可以使用一個 MapperScannerConfigurer , 它 將 會 查 找 類 路 徑 下 的 映 射 器 並 自 動 將 它 們 創 建 成 MapperFactoryBean。

要建立 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代碼:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  <property name="basePackage" value="org.mybatis.spring.sample.mapper" /></bean>

basePackage 屬性是讓你為映射器介面檔案設定基本的包路徑。 你可以使用分號或逗號 作為分隔字元設定多於一個的包路徑。每個映射器將會在指定的包路徑中遞迴地被搜尋到。

MapperScannerConfigurer 屬性不支援使用了 PropertyPlaceholderConfigurer 的屬 性替換,因為會在 Spring 其中之前來它載入。但是,你可以使用 PropertiesFactoryBean 和 SpEL 運算式來作為替代。

注 意 , 沒 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 為 MapperScannerConfigurer 將會建立 MapperFactoryBean,之後自動裝配。但是,如果你使 用了一個 以上的 DataSource ,那 麼自動 裝配可 能會失效 。這種 情況下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 屬性來設定正確的 bean 名 稱來使用。這就是它如何來配置的,注意 bean 的名稱是必須的,而不是 bean 的引用,因 此,value 屬性在這裡替代通常的 ref:

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />

MapperScannerConfigurer 支 持 過 濾 由 指 定 的 創 建 接 口 或 注 解 創 建 映 射 器 。 annotationClass 屬性指定了要尋找的註解名稱。 markerInterface 屬性指定了要尋找的父 介面。如果兩者都被指定了,加入到介面中的映射器會匹配兩種標準。預設情況下,這兩個 屬性都是 null,所以在基包中給定的所有介面可以作為映射器載入。

被發現的映射器將會使用 Spring 對自動偵測組件(參考 Spring 手冊的 3.14.4)預設的命 名策略來命名。也就是說,如果沒有發現註解,它就會使用映射器的非大寫的非完全限定類 名。但是如果發現了@Component 或 JSR-330 的@Named 註解,它會擷取名稱。注意你可以 配 置 到 org.springframework.stereotype.Component , javax.inject.Named(如果你使用 JSE 6 的話)或你自己的註解(肯定是自我註解)中,這 樣註解將會用作產生器和名稱提供器。

MyBatis Spring MapperScannerConfigurer 配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.