我所知道的java定时任务的几种常用方式:
1、spring schedule注解的方式;
2、spring schedule配置文件的方式;
3、java类继承timertask;
第一种方式的实现:
1、使用maven创建spring项目,schedule在spring-context.jar的包下边,因此需要导入与之相关的包;同时,我配的是spring
web项目,也同时导入了spring-web和spring-webmvc的包,如下:
maven导包配置只需要如下就好,其他相关的依赖,maven会自行解决。
2、配置spring项目的基础文件spring.xml:
3、编写java业务代码,需要在类声明上边添加@component注解,并在需要定时任务执行的方法声明上添加@scheduled(cron = "0/5 * * * * ?")注解以及相关的参数。
4、web项目的基础配置文件web.xml,:
上边的配置中使用了spring的上下文监听器,在这种情况下项目启动后,spring.xml中的定时任务配置才会生效。但是这不是唯一的方法,也可以使用如下的配置,启动项目后可以看到一样的效果:
这里是吧spring的监听器换成了mvc的调度器,在调度器加载的时候就运行spring.xml中的定时任务配置,因此启动项目后看到效果一样。如果把上边的监听器和mvc的调度器一起配在这里,会看到启动项目后同一时间内这个定时任务需要执行的业务会执行两次。