注入了一个记录日志的接口,启动微服务工程的时候报错了:No qualifying bean of type 'com.cscecnf.common.log.SysOprLogDao'

发布时间 2023-03-27 23:24:49作者: 勇敢-的心

【问题描述】

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'monitorAreaServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysOprLogService' defined in class path resource [com/cscecnf/common/log/SysOprLogConfig.class]: Unsatisfied dependency expressed through method 'sysOprLogService' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.cscecnf.common.log.SysOprLogDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:337)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1290)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1210)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640)
... 19 common frames omitted

 

【原因分析&解决方案】

@Resource
private SysOprLogService logService;
在某个服务类中注入了一个记录日志的接口,该接口是在依赖的common模块中,启动的时候报错,提示找不到可用的SysOprLogDao,应该是找不到对应的SysOprLogDao.xml文件;
需要在nacos的配置文件中增加这个common模块的jar包中对应的mapper文件的路径;
 原始配置:
  #mybatis-plus配置
  mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml     #mybatis mapper 文件路径
   修改为:
  #mybatis-plus配置
  mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml     #mybatis mapper 文件路径