一、该问题的重现步骤是什么?
1. maper文件名,TMaxFpcyMapper.java。
2. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'TMaxFpcyMapper' available
经排查,只有在认证后的api且两个大写字母开头mapper的情况下会报bean available。而放行的api,并不会。麻烦查下原因,感谢。
原生的mybatis是没有这种情况的
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladexBoot
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
两个大写字母本身就是不规范的命名方式,这是spring与mybatis-plus组合后会有的问题。
解决办法就是按照标准大驼峰的规则来命名,不能两个连着大写,你可以手动把他改成 TmaxFpcyMapper。
表名是t_max的前缀,现在的情况是,放行的api不会有这个问题,带上token才出现。
你指的认证后的api是哪种,用的哪个配置。是在工程启动的时候报的错还是调用api的时候报的错。
就是非放行的api,调用同一个mapperBean,两个大写字母开头的mapper会报找不到bean对象。而放行的api调用正常。当放行api,header加入token信息后,也是报找不到mapperBean.
两个字母大写开头本就是不符合规范的命名,今天解决了这个问题,未来还会在其他地方一样遇到,所以尽早改成规范的命名以免后期无穷无尽的问题出现
扫一扫访问 Blade技术社区 移动端