SpringBoot多模块项目如何扫描全局mapper接口和mapper.xml文件

一般的情况,大部分人会把sql.xml文件放在Resource 文件夹下,这样我们什么也不用配置,只需要在主启动类上加入注解@MapperScan(“com.xxx.mapper”)路径对应的是你的dao接口,这样就能加载到我们的sql文件.

在多模块的情况下,会出现mapper和xml映射不上的问题

下面提供在mapper接口和mapper.xml在任意路径,任意模块下,我们的项目该如何配置.
1.主启动类配置
在类名上加上如下注解

//  **代表任意路径不管有多少级,都能扫描到,在SpringbootApplication注解上加入这个,能将你所有的子模块中的类都加载到.
@SpringBootApplication(scanBasePackages = "com.xxx.**")
//全局扫描mapper文件夹(能扫描到所有子模块) mapper是dao接口的所在包名,以后必须创建的接口实现类的包名都叫mapper,
@MapperScan("com.xxx.**.mapper")

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/resourcesdirectory>
		resource>
		<resource>
			<directory>src/main/javadirectory>
			<includes>
				<include>**/*.xmlinclude>
			includes>
		resource>
	resources>
bulid>

你可能感兴趣的:(SpringBoot,博客实战)