报错org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘xxx’: Unsatisfied dependency expressed through field ‘baseMapper’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.xxx.xxx.xx.xxx.xxx’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
最近在对项目的框架进行更新升级,期间遇到很多问题。
这个算是遇到比较多的一个吧
问题分析
UnsatisfiedDependencyException这个异常主要就是框架报错,那你先去找框架的问题。
解决方法
什么pom、xml先去看看,一般来说都是这里出了了问题,尤其是项目移植的时候。
找一下。看一下对应关系,类的位置。每个都去挨个点一下,看看能不能点进去。
问题再分析
我的xml,pom检查了,没有什么问题啊,
那我们再往下看,
expected at least 1 bean which qualifies as autowire candidate.
这句报错说的很清楚了。需要参数,没有,一个都没有。
就是说框架没有发现这个东西,你没有给他,因为是代码迁移,很多位置什么的都变了,现在需要重新告诉框架
既然他都这样说了,进去你需要的xxx类,里面会有一个自动装配,@Autowired,或者@Resource,或者@Inject
@Autowired
private XXXMapper xxxMapper;
解决办法
找到他,没有错,点进去,点到这个 XXXMapper 里面去。
找到他的位置
package com.xxx.xxx.xxx.xxx.mapper;
public interface XXXMapper extends BaseMapper<Xxxx> {
ok,拿到这个位置,去Application的@MapperScan(basePackages = {})
注解加上这个位置。
或者去 XXXMapper
加上@Mapper注解。wanting就解决了。
目前为止这个报错差不多就是这两个原因