spring 3.2 注解注入普通BEAN的@Resource 总是得到空指针,怎么解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 3.2 注解注入普通BEAN的@Resource 总是得到空指针,怎么解决?相关的知识,希望对你有一定的参考价值。
用@Resource注入到ACTION中是可用使用的,但是我当前要把这个服务接口注入到定时器JOB工作累中,对数据库数据进行定时更新操心,但是这个注入的接口总是NULL
spring 配置文件
<!-- 注解搜索路径 -->
<context:component-scan base-package="com.wfms"/>
<!-- 支持注解依赖注入 -->
<context:annotation-config/>
<!-- 支持注解的事务,用于测试 -->
<tx:annotation-driven/>
<!-- 支持注解的aop功能 -->
<aop:aspectj-autoproxy/>
<!-- task任务扫描注解 -->
<task:annotation-driven/>
我不明白为什么在ACTION中可用注入而在普通的类中不能注入呢
你是不是没有搜索到普通类?为什么不用@Autowired 注解。
定时器用的spring quartz 么追问
@Autowired 也尝试过了,不过同样是空指针,即获得不到注入的接口对象。
定时器是用的quartz
定时器类用@Component进行声明了,理论上应该自动进入spring管理。
追答注入的接口是null,你是怎么判断的?如果是报nullpointerException的话有可能就不是spring的问题。因为如果spring找不到bean的话报的是NoSuchBeanDefinitionException。还是上点具体代码吧
追问debug模式是能看见运行时那个对象是空导致程序出现的异常的。
追答没代码帮不了你。给你几点建议。当容器启动时看看quartz是否开始工作(随便给个设定为每秒都执行的方法,看看能不能输出)。如果没工作就说明quartz没注入spring,检查所在包是否涵盖在base-package下。如果工作则检查你的注入接口(照理来说这个不应该为空,如果spring注入失败会给出具体的注入失败的原因的),然后看下你的执行方法中是否有可能出现导致空指针异常的代码。
以上是关于spring 3.2 注解注入普通BEAN的@Resource 总是得到空指针,怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA普通类怎么注入Spring的bean 例如 一个普通的JAVA类 我想引入一个dao层的入库方法。最好用注解方式