mapper两个大写字母开头,会报错

Blade 未结 1 721
56956808
56956808 剑圣 2022-02-17 20:20

一、该问题的重现步骤是什么?

1. maper文件名,TMaxFpcyMapper.java。

2. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'TMaxFpcyMapper' available

经排查,只有在认证后的api且两个大写字母开头mapper的情况下会报bean available。而放行的api,并不会。麻烦查下原因,感谢。

原生的mybatis是没有这种情况的

二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

           BladexBoot

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。


1条回答
  • 2022-02-18 01:59

    两个大写字母本身就是不规范的命名方式,这是spring与mybatis-plus组合后会有的问题。

    解决办法就是按照标准大驼峰的规则来命名,不能两个连着大写,你可以手动把他改成 TmaxFpcyMapper。


    作者追问:2022-02-18 14:51

    表名是t_max的前缀,现在的情况是,放行的api不会有这个问题,带上token才出现。

    回答: 2022-02-19 18:07

    你指的认证后的api是哪种,用的哪个配置。是在工程启动的时候报的错还是调用api的时候报的错。

    作者追问:2022-02-20 11:31

    就是非放行的api,调用同一个mapperBean,两个大写字母开头的mapper会报找不到bean对象。而放行的api调用正常。当放行api,header加入token信息后,也是报找不到mapperBean.

    回答: 2022-03-22 00:02

    两个字母大写开头本就是不符合规范的命名,今天解决了这个问题,未来还会在其他地方一样遇到,所以尽早改成规范的命名以免后期无穷无尽的问题出现

    0 讨论(1)
提交回复