@AutoWired注解使用时可能会发生的错误
Posted NYfor2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@AutoWired注解使用时可能会发生的错误相关的知识,希望对你有一定的参考价值。
@Autowired注解:用于对Bean的属性变量、属性的set方法及构造函数进行标注,配合对应的注解处理器完成Bean的自动配置工作。@Autowired注解默认按照Bean类型进行装配。
1、在applicationContext.xml文件中的<beans>标签里填写xsi:schemaLocation的时候,对引进的包的版本与填写的location的版本不对应。
像是,本来引进的包是"spring-context-3.2.5.RELEASE.jar",版本是3.2.5,但是在xsi:schemaLocation中填入的地址的是"http://www.springframework.org/schema/context/spring-context-4.2.xsd",那就有可能会发生错误。
2、在使用@Autowired注解的时候,没有把实体类之前setter方法删除掉。
3、在使用@Autowired注解之后没有在applicationContext.xml进行<context:component-scan>元素的配置。
因为<context:component-scan>元素会自动注册AuthowiredAnnotationBeanPostProcessor实例(使用Autowired注解必须要注册AutowiredAnnotationBeanPostProcessor实例,用于解析@Autowired注解)。
4、在没有使用<context:component-scan>元素配置的情况下,还没有用<bean>标签对AuthowiredAnnotationBeanPostProcessor进行注册。即:
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
5、在没使用@Autowired注解配置之前,在applicationContext.xml就写好了注入实例的<prototype>元素,但是在使用@Authowired注解之后需要把<prototype>元素删除。
因为该配置好的元素@Autowired注解已经在底层做好了。
以上是关于@AutoWired注解使用时可能会发生的错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 SpringBootTest 和 Autowired 注解时 LogCaptor 无法捕获
在 Spring 中使用 @Autowired 注解时出现以下错误应该如何解决?
使用IDEA工具整合mybatis时使用@Resource和@Autowired自动注解bean时会显示红色问题的解决办法
Spring学习-----Spring使用@Autowired注解自动装配