mvc中使用定时器的问题

我写了一个timer的定时器,调用dao层的方法,因为注入无效,new了dao
启动tomcat的时候空指针了。这里我该怎么去做一个mvc中的定时器呢?

2 种方式 第一种 就是像你这样 自定义timer 但是这种方式 不归spring管 ,所以你需要自己获取bean 通过spring上下文对象。 new是不行的 因为你的dao是spring管理的,你new的方式创建对象 ,但是对象没有跟数据库做映射,sessionFactory也没有被spring注入,实际上你是操作不了数据库的。
第二种方式 是用spring 的定时任务,这样你的timer是被spring管理的 能够保证加载定时任务的时候 spring已经加载完毕,包括实体映射和依赖注入。

可以取看看这个 quartz

用 spring quartz ,很简单配置一下就可以了,

我现在是使用task 注解的方式做定时器了。其他的逻辑我觉得都是没问题的。
目前最困惑的是component组件怎么去调用dao才能成功调用,不会nullpoint

at com.leyou.ad.dao.base.TimerDay.doSomethingWithCron(TimerDay.java:17

你把你的 配置文件xml 截图发一下看看了

 private SeatDao dao;

    @Scheduled(cron = "0/5 * * ? * *")  
    public void doSomethingWithCron() {  
        List list = dao.dayCount();
        Timestamp t = new Timestamp(System.currentTimeMillis());
        dao.stat(list,t);
    }  
    这个是我定时器现在的测试阶段写法,可以看出问题吗?

private SeatDao dao;
这个上面的@Autowire有吗?

问题解决。多谢各位的建议。

最后采用了spring注解的@Scheduled。相对来说配置与使用都非常方便

其实我想推荐你使用spring-task 非常简单 可以参考一下这篇文章http://blog.csdn.net/buyaoshuohua1/article/details/76184079