项目这段时间要用到quartz。所以摸索一把。下面是简单的实现spring mvc中放入quartz。
首先spring MVC项目默认大家都是会的。。。。不会的百度一波
导入jar包。maven工程中:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
据说spring3.1以下的要导1.x版本的quartz。具体没有试过。想必大家现在都是3.x版本了。
接着我们写我们一会要调度的类和方法:
package quartTest;
import java.util.Date;
/**
*
*@author Hu
*创建时间 :2017年12月20日 下午2:35:51
*/
public class quartzTest {
private static Integer counter = 1;
public void execute(){
Long time = System.currentTimeMillis();
System.out.println("-------------------"+counter+++"---------------------");
System.out.println(new Date(time));
}
}
之后我们在spring配置文件中配置相关属性
<!-- 使用MethodInvokingJobDetailFactoryBean,任务类可以不实现Job接口,通过targetMethod指定调用方法-->
<bean id="springQtzJob" class="quartTest.quartzTest"/>
<bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="springQtzJob"/>
</property>
<property name="targetMethod">
<value>execute</value> <!-- 要执行的方法名称 -->
</property>
</bean>
<!-- ======================== 调度触发器 ======================== -->
<bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="springQtzJobMethod"></property>
<property name="cronExpression" value="0/5 * * * * ?"></property>
</bean>
<!-- ======================== 调度工厂 ======================== -->
<bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="CronTriggerBean"/>
</list>
</property>
</bean>
大功告成,启动项目!控制台如下:
-------------------1---------------------
Wed Dec 20 15:22:40 CST 2017
十二月 20, 2017 3:22:41 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\GC\STS\apache-tomcat-8\webapps\ROOT
十二月 20, 2017 3:22:41 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\GC\STS\apache-tomcat-8\webapps\ROOT has finished in 30 ms
十二月 20, 2017 3:22:41 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio-8080"]
十二月 20, 2017 3:22:41 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-nio-8009"]
十二月 20, 2017 3:22:41 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 10834 ms
-------------------2---------------------
Wed Dec 20 15:22:45 CST 2017
-------------------3---------------------
Wed Dec 20 15:22:50 CST 2017
-------------------4---------------------
Wed Dec 20 15:22:55 CST 2017
-------------------5---------------------
Wed Dec 20 15:23:00 CST 2017
-------------------6---------------------
Wed Dec 20 15:23:05 CST 2017
备注:配置文件中 0/5 * * * * ? 代表的是cronExpression 默认有六位数组成,分别秒 分 时 日 月 周 (年),年可有,可没有。其中“/”代表隔多久,比如“0/5” 从0开始,隔5单位一次。“-”表示间断,如“0-5”就是0到5.