出现org.springframework.beans.factory.NoSuchBeanDefinitionException 的解决思路
程序员文章站
2022-04-30 20:00:30
...
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.代码有无错误:例子如下,Service类实现接口具有相同申明方法的Mapper接口,都会导致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;
}
}
推荐阅读
-
Android ListView 和ScroolView 出现onmeasure空指针的解决办法
-
mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结
-
浅析打开eclipse出现Incompatible JVM的解决方法
-
阿里云主机上安装jdk 某库出现问题的解决方法
-
解决苹果ios用js的Date()出现NaN的问题
-
MySQL 出现错误1418 的原因分析及解决方法
-
iOS 10拨打系统电话弹出框延迟出现问题的解决
-
解决iOS11刷新tableview会出现漂移的现象
-
解决iOS11图片下拉放大出现信号栏白条的bug问题
-
Android编程中activity启动时出现白屏、黑屏问题的解决方法