Spring对Timer的支持的核心是由ScheduledTimerTask和TimerFactoryBean类组成的。 ScheduledTimerTask类是对TimerTask的包装器实现,这样你就可以为这个任务定义触发器信息。使用 TimerFactoryBean类,你可以让Spring使用配置创建触发器,并为一组指定的ScheduledTimerTask bean自动创建Timer实例。
1、自定义timerTask,比如:定时输出ServletContext中的信息,本例中输出项目的绝对路径(比如:D:\software\apache-tomcat-6.0.33\webapps\spring\)
- public class BirthdayReminderTimerTask extends TimerTask implements ServletContextAware{
- /*通过实现ServletContextAware可获得servletContext*/
- private ServletContext servletContext;
- private static Logger logger = Logger.getLogger(BirthdayReminderTimerTask.class);
- @Override
- public void run() {
- // logger.debug("BirthdayReminderTimerTask is running");
- setServletContext(servletContext);
- try {
- System.out.println(this.servletContext.getRealPath("/"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }