这段时间在学习Spring依赖注入的时候,遇到了一个问题:No qualifying bean of type XXX
作为一个新手遇到这种问题说实话是很崩溃的,网上关于这个异常的回答五花八门,我是按照 《Spring in action》这本书来学习的,一直看到Spring MVC,说真的,这本书对于刚开始接触Spring 的人来是一点都不友好,如果没有很大的决心,估计都看不下来。
回归正题,我们来说说这个异常发生的原因: 通过异常解读可知道主要是因为找不到你所定义的Bean所造成的,所以最直接的原因就是:
1.你所设置的包不对:不管是xml配置、java配置、还是自动注入配置,都有可能是这个原因造成的,但是很多人造成这个问题的原因并不是这个。
2.你所配置的Bean属性出现错误:就像是在xml把class属性配置错了、在java配置中把类配置错了等等,这种错误的可能性也很小。
3.最容易出错的原因:Bean装配有问题,我遇到的的问题是我在使用Java类配置的时候给出的配置Bean的方法返回类型是我要装配的Bean,而不是Bean实现的接口,这就导致spring在动态代理的时候出现问题,所以应该将装配Bean的方法返回值改为Bean实现的接口类型。