quartz简介:
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0。
以上是百度百科介绍,我们可以简单的理解其为一个定时调度工具(定时器)。
spring整合quartz:
网上也有很多教程,好多都是基于配置方式,我们使用当然怎么简单就怎么用,所以这里介绍基于注解方式整合quartz。前提:你需要有一个能运行的web项目。
1、引依赖:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency>
注意:网上有的教程说还必须引入spring-context-support
依赖,但是本项目没有引入这个也可以正常使用quartz,可能是最新版不需要这个依赖了。
2、开启quartz的注解:
一般我们都在service层使用quartz,所以在spring-service.xml
中进行如下配置:
<context:component-scan base-package="com.zhu.meilianMall.service" /> <task:annotation-driven/>
注意:第一行扫描包的配置是ssm整合本来就需要的,等下quartz的注解也只能在这个包下使用。
3、使用quartz的注解:
在com.zhu.meilianMall.service
包下创建测试类,在需要定时执行的方法上加上@Scheduled(cron = "cron表达式")
,如下:
package com.zhu.meilianMall.service; import java.util.Date; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; /** * 测试quartz * @author zhu * */ @Service public class QuartzTest { @Scheduled(cron = "0/2 * * * * ?") public void run() { System.out.println("############### quartz整合成功! "+new Date()+"#####################"); } }
注意:既然是在service层测试,测试类不要忘了加@Service
注解;cron表达式不会写没关系,百度一下“cron表达式在线生成器”,就会有很多,这里也给出一个:在线cron表达式生成器。本案例中是每隔2秒执行一次run方法。
4、测试:
启动tomcat访问项目,然后控制台就打印出run方法的执行结果了。
run方法每隔两秒打印一次,整合成功!
总结:
本人对于quartz并不了解,其功能也不止本案例中提及的。不过与spring整合确实够简单,只需要引依赖、开启注解、使用注解3步即搞定。
以上内容属于个人笔记整理,如有错误,欢迎批评指正!