欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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)在你的映射器已經(jīng)準(zhǔn)備在Service對(duì)象中注入了:

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

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

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

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

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

相關(guān)文章

  • Java多線程并發(fā)之ReentrantLock

    Java多線程并發(fā)之ReentrantLock

    這篇文章主要介紹了Java?多線程并發(fā)ReentrantLock,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2023-04-04
  • 詳解SpringMVC如何進(jìn)行數(shù)據(jù)回顯

    詳解SpringMVC如何進(jìn)行數(shù)據(jù)回顯

    這篇文章主要介紹了詳解SpringMVC如何進(jìn)行數(shù)據(jù)回顯,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • java雙色球機(jī)選法程序解析

    java雙色球機(jī)選法程序解析

    這篇文章主要為大家詳細(xì)解析了java雙色球機(jī)選法程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • SpringCloud如何使用Eureka實(shí)現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)

    SpringCloud如何使用Eureka實(shí)現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)

    這篇文章主要介紹了SpringCloud使用Eureka實(shí)現(xiàn)服務(wù)之間的傳遞數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring解決依賴版本不一致報(bào)錯(cuò)問題

    Spring解決依賴版本不一致報(bào)錯(cuò)問題

    許多同學(xué)經(jīng)常會(huì)遇到依賴版本不一致導(dǎo)致代碼報(bào)錯(cuò),所以這篇文章就給大家詳細(xì)介紹一下Spring解決依賴版本不一致報(bào)錯(cuò)問題,需要的朋友跟著小編一起來看看吧
    2023-07-07
  • Java簡單驗(yàn)證身份證功能示例

    Java簡單驗(yàn)證身份證功能示例

    這篇文章主要介紹了Java簡單驗(yàn)證身份證功能,涉及java針對(duì)字符串的截取、判斷相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • Java中通過ZipOutputStream類如何將多個(gè)文件打成zip

    Java中通過ZipOutputStream類如何將多個(gè)文件打成zip

    ZipOutputStream?是Java中用于創(chuàng)建ZIP文件的類,它是?java.util.zip?包中的一部分,通過使用?ZipOutputStream?,可以將多個(gè)文件壓縮到一個(gè)ZIP文件中,這篇文章主要介紹了Java中(ZipOutputStream)如何將多個(gè)文件打成zip,需要的朋友可以參考下
    2023-09-09
  • javaDSL簡單實(shí)現(xiàn)示例分享

    javaDSL簡單實(shí)現(xiàn)示例分享

    DSL領(lǐng)域定義語言,用來描述特定領(lǐng)域的特定表達(dá)。比如畫圖從起點(diǎn)到終點(diǎn);路由中的從A到B。這是關(guān)于畫圖的一個(gè)簡單實(shí)現(xiàn)
    2014-03-03
  • 如何實(shí)現(xiàn)nohup?java進(jìn)程號(hào)一直在變方法步驟詳解

    如何實(shí)現(xiàn)nohup?java進(jìn)程號(hào)一直在變方法步驟詳解

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)nohup?java進(jìn)程號(hào)一直在變方法步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 手把手教你怎么創(chuàng)建spring項(xiàng)目

    手把手教你怎么創(chuàng)建spring項(xiàng)目

    今天教大家怎么寫spring項(xiàng)目,文中有非常詳細(xì)的圖文示例及介紹,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06

最新評(píng)論