最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java的MyBatis框架與Spring框架整合中的映射器注入

 更新時間:2016年06月01日 17:21:09   作者:fhd001  
映射器注入方式可以將MyBatis與Spring映射好的XML文件實現(xiàn)配置共用,這里我們就來詳解Java的MyBatis框架與Spring框架整合中的映射器注入:

MyBatis-Spring允許你在Service Bean中注入映射器。當使用映射器時,就像調用DAO那樣來調用映射器就可以了,但是此時你就不需要進行任何DAO實現(xiàn)的編碼,因為MyBatis會為你進行。
使用注入的映射器,你的代碼就不會出現(xiàn)任何MyBatis-Spring依賴和MyBatis依賴。在我們的應用中有這樣一個簡單的映射器。你也應該知道映射器僅僅是一個接口:

public interface UserMapper {  
  User getUser(String userId);  
}  

這是你使用MyBatis-Spring來創(chuàng)建映射器的方式:

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  
  <property name="sqlSessionFactory" ref="sqlSessionFactory" />  
  <property name="mapperInterface" value="sample.UserMapper" />  
</bean>  

現(xiàn)在你的映射器已經準備在Service對象中注入了:

<bean id="fooService" class="sample.FooServiceImpl"> 
  <property name="userMapper" ref="userMapper"/> 
</bean> 

注:映射器接口全類名與映射器xml配置文件的namespace是對應的。
 
關于MapperFactoryBean
MapperFactoryBean創(chuàng)建的代理類實現(xiàn)了映射器接口(如上例:UserMapper),并且注入到應用程序中。因為代理創(chuàng)建在運行環(huán)境中,那么指定的映射器必須是一個接口。而不是一個具體的實現(xiàn)類。 

沒有必要在Spring的XML配置文件中注冊所有的映射器。相反,你可以使用一個MapperScannerConfigurer,它將會查找類路徑下的映射器并自動將它們創(chuàng)建成MapperFactoryBeans。要創(chuàng)建MapperScannerConfigurer,可以在Spring的配置中添加如下代碼:

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

 
basePackage屬性是讓你為映射器接口文件設置基本的包路徑。你可以使用分號或逗號作為分隔符設置多于一個的包路徑。每個映射器將會在指定的包路徑中遞歸地被搜索到。
注意,沒有必要去指定SqlSessionFactory或SqlSessionTemplate,因為MapperScannerConfigurer將會創(chuàng)建MapperFactoryBean,之后自動裝配。但是,如果你使用了一個以上的DataSource(因此,也是多個的SqlSessionFactory),那么自動裝配可能會失效。這種情況下,你可以使用sqlSessionFactory或sqlSessionTemplate屬性來設置正確的工廠/模板。
 
MapperScannerConfigurer支持過濾由指定的創(chuàng)建接口或注解創(chuàng)建映射器。annotationClass屬性指定了要尋找的注解名稱。markerInterface屬性指定了要尋找的父接口。如果兩者都被指定了,加入到接口中的映射器會匹配兩種標準。默認情況下,這兩個屬性都是null,所以在基包中給定的所有接口可以作為映射器加載。
 
被發(fā)現(xiàn)的映射器將會使用Spring對自動偵測組件默認的命名策略來命名。也就是說,如果沒有發(fā)現(xiàn)注解,它就會使用映射器的非大寫的非完全限定類名。但是如果發(fā)現(xiàn)了@Component或JSR-330@Named注解,它會獲取名稱。

相關文章

  • Java File類常用方法與文件過濾器詳解

    Java File類常用方法與文件過濾器詳解

    Java File類以抽象的方式代表文件名和目錄路徑名。該類主要用于文件和目錄的創(chuàng)建、文件的查找和文件的刪除等。File對象代表磁盤中實際存在的文件和目錄。本篇文章我們來講解File類的常用方法與文件過濾器
    2022-04-04
  • SpringBoot中4種接口冪等性的實現(xiàn)策略

    SpringBoot中4種接口冪等性的實現(xiàn)策略

    冪等性是指對同一操作執(zhí)行多次與執(zhí)行一次的效果相同,不會因為重復執(zhí)行而產生副作用,本文整理了4個SpringBoot實現(xiàn)接口冪等性的方法,大家可以根據需要進行選擇
    2025-04-04
  • Springmvc conver實現(xiàn)原理及用法解析

    Springmvc conver實現(xiàn)原理及用法解析

    這篇文章主要介紹了Springmvc conver實現(xiàn)原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 詳解Java8 Collect收集Stream的方法

    詳解Java8 Collect收集Stream的方法

    這篇文章主要介紹了Java8-Collect收集Stream的方法,提到了收集器的作用,連接收集器的方法,需要的朋友可以參考下
    2018-04-04
  • Java中的ArrayList底層源碼分析

    Java中的ArrayList底層源碼分析

    這篇文章主要介紹了Java中的ArrayList底層源碼分析,通過下標讀取元素的速度很快,這是因為ArrayList底層基于數(shù)組實現(xiàn),可以根據下標快速的找到內存地址,接著讀取內存地址中存放的數(shù)據,需要的朋友可以參考下
    2023-12-12
  • java反射應用詳細介紹

    java反射應用詳細介紹

    本篇文章依舊采用小例子來說明java反射應用,因為我始終覺的,案例驅動是最好的,需要的朋友可以參考下
    2012-11-11
  • SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結

    SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結

    這篇文章主要介紹了SpringBoot 在項目啟動之后執(zhí)行自定義方法的兩種方式小結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 使用Guava?Cache原理及最佳實踐

    使用Guava?Cache原理及最佳實踐

    文章介紹了GuavaCache,這是一種支持高并發(fā)的本地緩存,它支持多種回收策略,如基于容量、時間和引用的回收,并提供了自動加載、定時刷新和顯式清除緩存的功能,文章還討論了GuavaCache的適用場景和使用方法,并通過代碼示例和源碼分析,幫助讀者更好地理解和使用GuavaCache
    2025-02-02
  • java數(shù)據結構與算法之插入算法實現(xiàn)數(shù)值排序示例

    java數(shù)據結構與算法之插入算法實現(xiàn)數(shù)值排序示例

    這篇文章主要介紹了java數(shù)據結構與算法之插入算法實現(xiàn)數(shù)值排序的方法,結合簡單實例形式分析了插入算法的節(jié)點操作與排序相關實現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08
  • Java BigDecimal案例詳解

    Java BigDecimal案例詳解

    這篇文章主要介紹了Java BigDecimal案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論

通渭县| 富平县| 五寨县| 宁强县| 株洲县| 通渭县| 托克托县| 洞口县| 通州市| 灵宝市| 喀喇沁旗| 西平县| 崇仁县| 苏尼特左旗| 沈阳市| 镇宁| 周至县| 会昌县| 仁怀市| 察隅县| 西峡县| 阜城县| 西充县| 汉川市| 南皮县| 饶平县| 茂名市| 双江| 双牌县| 鄂托克前旗| 浙江省| 天祝| 泗洪县| 巩留县| 大足县| 读书| 石狮市| 罗甸县| 秦皇岛市| 开平市| 昌都县|