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

Parameter 0 of constructor in XXX required a bean of type ‘XXX‘ that could not be found.

项目结构

Parameter 0 of constructor in XXX required a bean of type ‘XXX‘ that could not be found.

实际的场景是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注解之类的,如果确保了类没有问题,就去检查一下是否有被扫描到

相关文章:

  • 2021-05-15
  • 2021-05-25
  • 2022-12-23
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-10-25
猜你喜欢
  • 2021-09-11
  • 2021-11-25
  • 2021-04-02
  • 2022-12-23
  • 2021-07-01
  • 2021-04-21
  • 2022-01-12
相关资源
相似解决方案