org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.bjsxt.service.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

问题浮现:

在SpringMVC中我使用了注解来替代之前的servlet,然后调用service时也没有新建service,也是通过注解的方式

然后就一直再报上述的错误,通过自己测试,如果不使用service注解可以正常访问到控制器的方法中去,然后就认为是自己的service这一块没有访问到。认为是自己的applicationContext.xml,也就是spring目录中的xml文件出了问题。

检查了自己的3个配置文件:

解决:

发现xml文件配置没有问题。这个时候就觉得是xml文件的上一级出现了问题。最后发现是WEB-INFO目录下引入xml文件出现了严重的问题,自己的路径写错了!!!!!!!!!我写到了mvc的路径下,然而我要引入的是spring文件下的xml文件。这个问题让我绝望

这才是正确路径:

气死我了。。。。。。。。。。。。。。。。。

查阅资料了发现这类问题出现的原因有以下几点

1:在controller的service的时候使用了注解@Autowired。但是在service的实现类中未使用@Service注解,导致找不到

2:接口没有写实现类,实现类实现错了接口

3:有可能没有找到需要扫描的包(也就是xml文件出现了错误,如果xml文件没有错误,就去调用xml文件的web-info目录下)

4:注入是否正确

5:包是否完整

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐