spring中mapper注入的问题!!!一定要仔细细心,避坑!!!

mapper注入所遇到的坑

今天在写项目的时候新建了一个模块,建了新的mapper,controller,service包,在写完代码进行测试的时候报了mapper找不到的错误
截图如下:
在这里插入图片描述
我心想,这报错我熟啊,不就是找不到bean吗,应该是我哪里忘了加注解了,类没有注册到spring容器中,然后我就去排错了
错误提示中有一句:

No qualifying bean of type 'com.valentin.wechat.mapper.WechatMenuMapper' available

思路一下子就清晰了,mapper没有注入,于是我找到mapper类加上了注解(我这里使用的MabatisPlus)
在这里插入图片描述
心想这肯定没问题了吧,于是我点击了运行,结果还是找不到这个bean
我:???
嗷~我明白了spring扫描包的问题,我又去检查了一下之前配置的application.yaml

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
  mapper-locations: classpath:com/valentin/*/mapper/xml/*.xml  #mapper路径的位置

很好啊,不需要改啊,这里/mapper/前面的*已经把我新建包的结构包括进去了呀,是扫描这些包下的没错啊
当我找了半天没找到的时候我想起来了mapperscan这个注解,之前一直没往这方面想,因为我的mapperscan之前是加在了启动类上,后来转移到mybatisplus配置类上了,我就给忘记了

@Configuration
@MapperScan(basePackages = {"com.valentin.auth.mapper","com.valentin.process.mapper","com.valentin.wechat.mapper"})
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置
     * MybatisConfiguration#useDeprecatedExecutor = false
     * 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}

还有就是写代码一定要细心,这样的小问题耽误太多的时间实在是太不应该了,写篇博客引以为戒

之后我把application.yaml中的mapper包的位置注释掉了之后没有报错也运行起来了,只是会有一个警告,提示mapper的路径没有配置
在这里插入图片描述
但是如果我把mapperscan给注释掉只留下yaml中的配置,运行就会找不到mapper

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
  mapper-locations: classpath:com/valentin/*/mapper/xml/*.xml  #mapper路径的位置

是我yaml的mapper路径写错了吗,还是说这个配置并不是这么用的,有没有路过的大神给我解答一下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗雨卿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值