No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理

本文介绍了如何处理SpringBoot中MyBatis-Plus扫描Mapper接口时出现的警告。问题在于@Mapper注解的接口不应位于@MapperScan指定的basePackage路径下,否则会导致重复扫描并产生警告。解决方案是将@Mapper接口放在单独的路径下,避免与@MapperScan冲突。
摘要由CSDN通过智能技术生成

先直接上处理办法,再述说原因

我的处理方式是:

直接在项目内某个路径下建个接口加上@Mapper注解


特别注意:这个接口不能在@MapperScan注解定义的basePackage路径下

否则即使去除了标题所示的告警,还会有另外一个新告警:Skipping MapperFactoryBean with name xxx Bean already defined with the same name!

原因是:

由于启动时,spring boot的默认basePackage会被mybatis-plus的自动配置拿来作为基目录去扫描是否有注解了@Mapper的接口要被注册到spring 容器,如果没有这个注解,则会报[No MyBatis mapper was found in xx]

注意这个接口不能在@MapperScan定义的路径下,如果在,即使去掉了【No Mybatis Mapper was found】warn,还是会有一个新的warn[Skipping MapperFactoryBean with name xx  Bean already defined with the same name]
原因是
当@Mapper 与@MapperScan注解都存在,且@Mapper定义的接口就在@MapperScan定义的接口的basePackage路径下就会产生两次扫描创建bean。
第一次扫描是mybatis-plus的basePackage(会自动取spring boot的应用启动路径作为basePackage)下的@Mapper注册为bean
第二次扫描是mybatis根据@MapperScan定义的basePackage路径的所有接口都注册为bean,
如果第一次扫描的@Mapper在@MapperScan定义的路径内,第二次扫描会发觉bean已存在,报告警
回答: 这个问题的原因是在指定的包路径下没有找到MyBatisMapper接口。根据引用\[1\]中的报错日志,可以看到警告信息" No MyBatis mapper was found in '\[com.taiji\]' package. Please check your configuration."。解决这个问题的方法是在项目内的某个路径下建立一个接口,并在接口上添加@Mapper注解。需要注意的是,这个接口不能在@MapperScan注解定义的basePackage路径下,否则会出现另外一个新的警告"Skipping MapperFactoryBean with name xx Bean already defined with the same name!"。这是因为在启动时,Spring Boot的默认basePackage会被MyBatis-Plus的自动配置拿来作为基目录去扫描是否有带有@Mapper注解的接口需要注册到Spring容器中。如果没有这个注解,则会报错。同时,如果@Mapper注解定义的接口在@MapperScan注解定义的路径下,会导致重复扫描创建bean的问题。因此,需要确保这两个注解不在同一个路径下。\[1\]\[3\] #### 引用[.reference_title] - *1* [MyBatis(或Plus):找不到xml文件。No MyBatis mapper was found in ‘[com.**.**.mapper]‘ package](https://blog.csdn.net/qq_16946803/article/details/121470227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [No MyBatis mapper was found in ‘[xxx.mapper]‘ package. Please check your configuration.](https://blog.csdn.net/GaoL77/article/details/129168248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理](https://blog.csdn.net/h15915793385/article/details/122893729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值