先直接上处理办法,再述说原因
我的处理方式是:
直接在项目内某个路径下建个接口加上@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已存在,报告警