org.springframework.beans.factory.NoSuchBeanDefinitionException 的解决思路

我的是名字相似,参数以及返回类型都相同,应该是这样

借鉴自:https://blog.csdn.net/butterfly_resting/article/details/80044863

个人分类: ExceptionSpringMVC

版权声明:如笔记。一点一滴,伴我成长。可转载 https://blog.csdn.net/Butterfly_resting/article/details/80044863

 
  1. 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)}

  2.  
  3.  
  4. 严重: StandardWrapper.Throwable

  5. 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.代码有无错误:例子如下,Service类实现接口具有相同申明方法的Mapper接口,都会导致Spring无法识别相应的bean

 
  1. public interface BaseDictMapper {

  2. //根据类别代码查询数据

  3. List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode);

  4.  
  5. }

 
  1. public interface BaseDictService {

  2. //根据类别代码查询

  3. List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode);

  4. }

 
  1. public class BaseDictServiceImpl implements BaseDictMapper { //错误:应该实现为BaseDictService

  2. @Autowired

  3. private BaseDictMapper baseDictMapper;

  4. @Override

  5. public List<BaseDict> queryBaseDictByDictTypeCode(String dictTypeCode) {

  6. List<BaseDict> list = this.baseDictMapper.queryBaseDictByDictTypeCode(dictTypeCode);

  7. return list;

  8. }

  9. }

猜你喜欢

转载自blog.csdn.net/qq_40437152/article/details/82120021