美文网首页
org.springframework.beans.factor

org.springframework.beans.factor

作者: _睶_ | 来源:发表于2019-05-28 08:53 被阅读0次
    Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private cn.itcast.crm.service.BaseDictService cn.itcast.crm.controller.CustomerController.baseDictService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [cn.itcast.crm.service.BaseDictService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    
    严重: StandardWrapper.Throwable
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customerController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private cn.itcast.crm.service.BaseDictService cn.itcast.crm.controller.CustomerController.baseDictService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [cn.itcast.crm.service.BaseDictService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    

    解决问题的思路:

    1.如果您使用注释进行配置,则可能会缺少cn.itcast.crm.service.BaseDictService实现的注释(@Service或@Component等)。

    2.如果您使用(仅)xml,您可能会错过BaseDictService实现的<bean>定义。

    3.如果您使用注释并且实现注释正确,请检查扫描实现所在的包

    (检查各自组件的自动扫描组件<context:component-scan base-package = “XXXX”)

    或者(Spring自动扫描<context:annotation-config/>)

    4.代码有无错误:例子如下,

    BaseDictMapper在mapper文件下并在相关的mapper.xml进行相关配置,BaseDictService在service文件下并做了相关的spring配置文件做了对应的配置。Service实现具有相同申明方法的mapper接口(而spring并不能扫描到mapper文件夹下的接口和类),因此BeanFactory在Spring Context中没有找到bean的实例,最终导致Spring无法识别相应的bean

    public interface BaseDictMapper {
         //根据类别代码查询数据
          List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode);
    
    }
    
    public interface BaseDictService {
          //根据类别代码查询
          List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode);
    }
    
    public class BaseDictServiceImpl implements BaseDictMapper {    //错误:应该实现为BaseDictService
          @Autowired
          private BaseDictMapper baseDictMapper;
          @Override
          public List<BaseDict> queryBaseDictByDictTypeCode(String  dictTypeCode)  {
                List<BaseDict> list =  this.baseDictMapper.queryBaseDictByDictTypeCode(dictTypeCode);
                return list;
          }
    }
    

    相关文章

      网友评论

          本文标题:org.springframework.beans.factor

          本文链接:https://www.haomeiwen.com/subject/krzltctx.html