淺談關(guān)于Mybatis的mapper-locations配置問題
一、Spring-boot配置mybatis的mapper-locations解決什么問題?
mapper-locations
顧名思義是一個定義mapper位置的屬性 在yml或properties下配置,作用是實現(xiàn)mapper接口配置見mapper和接口的綁定。
使用場景:
當mapper接口和mapper接口對應(yīng)的配置文件在
- 命名上相同
- 所在的路徑相同
則mapper-locations可以不用配置,配置也不會生效。
但是,如果 當mapper接口和mapper接口對應(yīng)的配置文件在
- 命名上不同或
- 所在的路徑不同
之一不同,需要配置mapper-locations才能實現(xiàn)接口的綁定
mapper接口:com.liuzeyu.mapper.UserMapper.java 配置文件:mapper.UserMapper.xml
實現(xiàn)接口綁定需要在配置文件中配置:
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
二、該怎么配置?
形如 mapper-locations: classpath*:mapper/*.xml 本質(zhì)在于把mapper的位置告訴springboot,類似主啟動類中mapperscan的作用,但是這里多了一個classpath,這是沒有在原本的包結(jié)構(gòu)中出現(xiàn)過的。
但是,我們運行項目,會發(fā)現(xiàn)target文件的結(jié)構(gòu)。
原本的src/main/java下的文件全部放在com中,而resource內(nèi)的文件則跟com處于同級目錄。classpath就代表這里的classes。
三、classpath和classpath*的區(qū)別
classpath:只會到你的class路徑中查找找文件。
classpath*:不僅包含class路徑,還包括jar文件中(class路徑)進行查找。
注意: 用classpath*:需要遍歷所有的classpath,所以加載速度是很慢的;因此,在規(guī)劃的時候,應(yīng)該盡可能規(guī)劃好資源文件所在的路徑,盡量避免使用classpath*。
到此這篇關(guān)于淺談關(guān)于Mybatis的mapper-locations配置問題的文章就介紹到這了,更多相關(guān)Mybatis的mapper-locations配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
支票金額大寫轉(zhuǎn)換示例(金額大寫轉(zhuǎn)換器)
這篇文章主要介紹了支票金額大寫轉(zhuǎn)換示例(金額大寫轉(zhuǎn)換器),需要的朋友可以參考下2014-02-02java 中序列化與readResolve()方法的實例詳解
這篇文章主要介紹了java 中序列化與readResolve()方法的實例詳解的相關(guān)資料,這里提供實例幫助大家理解這部分知識,需要的朋友可以參考下2017-08-08SpringBoot集成Mybatis-Plus多租戶架構(gòu)實現(xiàn)
本文主要介紹了SpringBoot集成Mybatis-Plus多租戶架構(gòu)實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09