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中可用注入而在普通的类中不能注入呢

参考技术A 没有明白你的意思,
你是不是没有搜索到普通类?为什么不用@Autowired 注解。
定时器用的spring quartz 么追问

@Autowired 也尝试过了,不过同样是空指针,即获得不到注入的接口对象。
定时器是用的quartz

参考技术B 你的定时器纳入spring管理了么?追问

定时器类用@Component进行声明了,理论上应该自动进入spring管理。

追答

注入的接口是null,你是怎么判断的?如果是报nullpointerException的话有可能就不是spring的问题。因为如果spring找不到bean的话报的是NoSuchBeanDefinitionException。还是上点具体代码吧

追问

debug模式是能看见运行时那个对象是空导致程序出现的异常的。

追答

没代码帮不了你。给你几点建议。当容器启动时看看quartz是否开始工作(随便给个设定为每秒都执行的方法,看看能不能输出)。如果没工作就说明quartz没注入spring,检查所在包是否涵盖在base-package下。如果工作则检查你的注入接口(照理来说这个不应该为空,如果spring注入失败会给出具体的注入失败的原因的),然后看下你的执行方法中是否有可能出现导致空指针异常的代码。

以上是关于spring 3.2 注解注入普通BEAN的@Resource 总是得到空指针,怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

spring 如何用注解的方式给普通类注入bean

JAVA普通类怎么注入Spring的bean 例如 一个普通的JAVA类 我想引入一个dao层的入库方法。最好用注解方式

使用注解,spring中无法注入bean?

spring依赖注入引发的一点思考

Spring入门到进阶 - Spring Bean管理 注解方式

springboot 启动排除某些bean 的注入