今天在搭建微服务项目的时候遇到了一个问题

项目结构

实际的场景是OperationLogService需要注入OperationLogMapper,也就是最常见的业务层依赖数据层,但是项目启动的时候报了这个错误,最开始我还以为是Mapper没有注册到Spring中,检查了之后我确定Service和Mapper是没有问题的,然后找了好久也没有找到原因,这时候我想到会不会是Mapper没有被扫描到?于是我检查了一下Applicaiton启动类的位置,发现真的是这个问题

我各个模块的包命名规则是priv.cwr.log.模块名,我的Application启动类是放在priv.cwr.log.web下,由于Application启动类只会扫描自己所在的包及其子包下面,所以扫包的范围是priv.cwr.log.web同级包以及子包下,所以自然也就扫不到priv.cwr.log.mapper了, 把启动类放到priv.cwr.log目录下就解决了这个问题。

总结:建议下次遇到类似的问题,首先检查是不是类本身的问题,确定是否注册到了spring,比如是否有@Compoent注解之类的,如果确保了类没有问题,就去检查一下是否有被扫描到

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐