2.所有类已经全部注册到ioc容器中 还是出现无法找到某个类的情况
见到这个如下异常第一个反应就是自己有类因为某种原因呢没有被注册到IOC容器中, 可是在仔细检查后发现 自己的所有类都已经配置到IOC容器中。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.yan.service.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}
这个问题困扰了我很久 后来发现是Dispathservlet 中绑定的spring配置文件的问题,具体原因如下
<!-- 注册DispatchServle 这是springmvc的核心控制器 由它控制每个请求的分发-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<!--这里绑定的配置文件 不应该是单独的SSM中的一部分配置文件 应该是一个包含所有spring配置的配置文件 -->
<!--这里是错误的-->
<param-value>classpath:spring-servlet.xml</param-value>
<!--正确示范:这里假定application.xml 已经include了所有的spring配置-->
<param-value>classpath:application.xml</param-value>
</init-param>
<!--启动级别-1-->
<load-on-startup>1</load-on-startup>
</servlet>
如上