SpringBoot多模块项目如何扫描全局mapper接口和mapper.xml文件
一般的情况,大部分人会把sql.xml文件放在Resource 文件夹下,这样我们什么也不用配置,只需要在主启动类上加入注解@MapperScan(“com.xxx.mapper”)路径对应的是你的dao接口,这样就能加载到我们的sql文件.在多模块的情况下,会出现mapper和xml映射不上的问题下面提供在mapper接口和mapper.xml在任意路径,任意模块下,我们的项目该如何配置.1.主
·
一般的情况,大部分人会把sql.xml文件放在Resource 文件夹下,这样我们什么也不用配置,只需要在主启动类上加入注解@MapperScan(“com.xxx.mapper”)路径对应的是你的dao接口,这样就能加载到我们的sql文件.
在多模块的情况下,会出现mapper和xml映射不上的问题
下面提供在mapper接口和mapper.xml在任意路径,任意模块下,我们的项目该如何配置.
1.主启动类配置
在类名上加上如下注解
// **代表任意路径不管有多少级,都能扫描到,在SpringbootApplication注解上加入这个,能将你所有的子模块中的类都加载到.
@SpringBootApplication(scanBasePackages = "com.xxx.**")
//全局扫描mapper文件夹(能扫描到所有子模块) mapper是dao接口的所在包名,以后必须创建的接口实现类的包名都叫mapper,由于个人习惯不同,有的人喜欢给dao的包名命名为mapper 有的喜欢命名为dao
@MapperScan(basePackages={"com.xxx.**.mapper","com.xxx.**.dao"})
2.application.properties文件配置
# 这里是告诉mybatis 扫描我们的xml文件的它会和上面的注解进行匹配
# classpath* 代表扫描全局,也就是所有的子模块,
# ** 代表中间不管有多少级目录,最终找到mapper,找到任意名称的xml文件
mybatis.mapper-locations: classpath*:com/xxx/**/mapper/*.xml
3.pom.xml (在父工程的xml文件里配置扫描xml的,这个虽然和第二步方式感觉很类似都是扫描xml文件的,但是这两个缺一不可,缺少一个,你的子模块的mapper都会映射不上)
<bulid>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</bulid>
更多推荐
已为社区贡献5条内容
所有评论(0)