javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception

来源:互联网 发布:中文域名续费多少钱 编辑:程序博客网 时间:2024/06/09 22:38

javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception

org.springframework.beans.factory.NoSuchBeanDefinitionException:

No qualifying bean of type 'com.service.UserService' available: expected at least 1 bean which qualifies as autowire candidate.

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

解决:忘了加这个了:说八遍(无法加载applicationContext.xml文件,所以无法注入service)

<!-- Spring监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


1、使用了未初始化的变量
2、使用了未初始化的对象
3、使用了关键字或已存在的类名作变量对象方法或类名

@Autowired  (Srping提供的)

默认按类型匹配,自动装配(Srping提供的),可以写在成员属性上,或写在setter方法上

@Autowired(required=true) 

一定要找到匹配的Bean,否则抛异常。 默认值就是true

@Autowired

@Qualifier("bean的名字")

按名称装配Bean,与@Autowired组合使用,解决按类型匹配找到多个Bean问题。

@Resource   JSR-250提供的

默认按名称装配,当找不到名称匹配的bean再按类型装配.

可以写在成员属性上,或写在setter方法上

可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是未指定name属性, 默认使用成员属性的变量名,一般不用写name属性.

@Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.


6 0