在java的spring框架中,用Timer和TimerTask来实现定时任务,有时我们要在TimerTask的子类的重写run方法里,调用service层的方法。
但是不管是spring.xml配置的bean还是注解@autoware注入的bean,在执行的时候都会报空指针异常。
这其中主要的问题是TimerTask不是由spring管理的,所以你TimerTask内部的service也无法自动注入,2种解决办法,1、TimerTask交由spring管理;2、通过applicationContext.getBean()获取service。
写一个servlet 在web.xml里配置一下。 利用servlet的生命周期init()初始化run()方法也可以。
原文地址:https://www.cnblogs.com/boomoom/p/9136557.html
时间: 2024-11-11 01:26:04