Mybatis加載Mapper接口有兩個入口:一個是指定mapper xml,另外一個是指定Mapper接口。mybatis
經過指定mapper xml的路徑,Mybatis使用XMLMapperBuilder類來加載解析mapper xml文件。最後會使用mapperRegistry.addMapper(type)來加載,這個type就是mapper xml的namespace屬性。app
指定Mapper接口,Mybatis使用方法mapperRegistry.addMapper(type)來加載,在這個方法內部會使用類MapperAnnotationBuilder來解析Mapper接口上的註解信息,首先是加載Mapper接口對應的mapper xml文件,而後在解析註解信息。其中怎麼找到Mapper接口的mapper xml文件呢?將類名轉爲xml路徑,好比:cre.mybatis.mapper.BookMapper -> cre/mybatis/mapper/BookMapper.xml。ui
咱們使用兩個入口均可以讓Mybatis加載咱們的Mapper,可是使用Mapper接口的話,默認的mapper xml路徑就是有要求的。因此使用mapper xml路徑的方式比較好。spa