在SpringBoot中咱們配置Mybatis的掃描是很簡單的,最簡單粗暴的方法是直接在類上註解 @MapperScan("你的項目根包"),java
而後你就會驚喜的發現,Mybatis幫你把全部的接口都作了一個動態代理...爲全部的接口都作了一個實現類,無差異攻擊。spring
這是由於,Mybatis的默認機制是會對MapperScan中basePackage包下的全部接口都生成一個代理實現類。apache
具體解決方案和緣由參考這哥們的文章: https://blog.csdn.net/qq523786283/article/details/61916279mybatis
不過這哥們的配置是基於xml的,app
我這裏給出一個SpringBoot的解決方案(其實也是換湯不換藥,由Xml變爲javaConfig而已):.net
import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class mybatisConfig { @Bean public MapperScannerConfigurer getMapperScannerConfigurer(){ MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); //這裏我特意換成了Mapper 這樣你就能夠儘可能遵循官方的規範 使用mapper註解標識你的Mapper類,同時還能夠避免其餘的非Mapper接口被無差異掃描 mapperScannerConfigurer.setAnnotationClass(org.apache.ibatis.annotations.Mapper.class); mapperScannerConfigurer.setBasePackage("改爲你本身的包路徑"); return mapperScannerConfigurer; } }