写项目时遇到如标题那样的错误提示: “No qualifying bean of type XXX found for dependency XXX
“, JVM提示的意思是你的程序里说需要XXX的Bean(类), 但却没有找到它, 所以也就报错了.
网上搜索一番, 大概也是有几类说法的:
1.”@Service”注解写在了接口类(interface)上面, 把”@Service”注解写在该接口类的实现类(implements)上, 则不报错了[ref];
2.配置文件中要配置好”扫描类”[ref], 如下:
<bean
class="org.mybatis.spring.mapper.MapperScannerConfigurer">
3.其它类型的原因;
我的解决Solution是, 将以下代码中的@Resource
替换成@Autowired
, 则不报错:
@Service
public class UserServiceImpl implements UserService {
@Resource // 替换成"@Autowired";
private AdminUserMapper adminUserMapper;
// 其余代码...
}
JVM是不报错了, 可这实在是治标不治本, 要理解为什么会这么报错, 要去理解@Autowired
与@Resource
的区别(可搜索看看), 以及看Spring框架的官方文档的说明(这才是第一手的资料);