背景:我在学习springboot之后,练手接触的都是单模块项目,工作中遇到的小项目也是如此。接下来分享一下采用springboot多模块项目基于.yml整合mybatis的经验。按单模块项目的写法,我们一般都是将*Mapper.xml文件放在src/main/resources下的某个目录下,例如将SysUserMapper.xml放在src/main/resources/xml下;*Mapper.java文件放在src/main/java的某个目录下,例如将SysUserMapper.java放在src/main/java/zondy/repository/mapper下。按单模块项目设计思维,在多模块项目中,每个子模块都将其相应的*Mapper.xml文件放在其src/main/resources/xml下,都将其相应的*Mapper.java文件放在其src/main/java/zondy/repository/mapper下就会发现有问题,除了入口模块(即包含启动类的模块)的*Mapper.java文件和*Mapper.xml文件能映射上,其它子模块却不能映射上。
可能上面问题描述的不是清楚,说白了就是springboot多模块项目基于.yml整合mybatis时,*Mapper.java文件和*Mapper.xml文件不能映射,执行不了sql。原因是因为.yml对mybatis配置不当,接下来我经过网上搜索,得知两种问题解决可行方式,如有不当,请大家指导。
第一种,将所有的*Mapper.xml文件放在包含启动类的入口模块下的src/main/resources/xml中
首先,在启动类上加上