demo簡介:
這是個簡單quartz實例,主要quart配置集成spring,功能為每20秒輸出一句內容!
效果如下:
2017-01-05 14:04:00,044 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:04:20,001 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:04:40,002 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:05:00,001 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:05:20,002 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:05:40,002 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:06:00,002 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
2017-01-05 14:06:20,000 INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志輸出
定時任務測試
demo實例類:
package com.bbtree.project.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by Administrator on 2017/1/5.
*/
public class TaskDemo {
private static final Logger LOGGER= LoggerFactory.getLogger(TaskDemo.class);
public void doTask(){
LOGGER.info("dddd");
System.out.println("日志輸出");
System.out.println("定時任務測試");
}
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by Administrator on 2017/1/5.
*/
public class TaskDemo {
private static final Logger LOGGER= LoggerFactory.getLogger(TaskDemo.class);
public void doTask(){
LOGGER.info("dddd");
System.out.println("日志輸出");
System.out.println("定時任務測試");
}
}
集成Spring配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--注冊定時器-->
<bean id="demoTimer"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--必須配置quartz延遲啟動,在應用啟動后起動,延遲20秒-->
<property name="startupDelay" value="20"/>
<!--普通觸發器,觸發器列表-->
<property name="triggers">
<list>
<ref bean="taskDemoTrigger"/>
</list>
</property>
</bean>
<!--CronTrigger配置-->
<bean id="taskDemoTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--定時任務詳細方法類-->
<property name="jobDetail" ref="taskDemoJobDetail"/>
<!--cron表達式-->
<property name="cronExpression">
<value>0/20 * * ? * *</value>
</property>
</bean>
<!--制定定時任務細節 調用哪個類 哪個方法-->
<bean id="taskDemoJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="taskDemo"/>
</property>
<property name="targetMethod">
<value>doTask</value>
</property>
<property name="concurrent" value="false"/>
</bean>
<!--定時任務的類-->
<bean id="taskDemo" class="com.bbtree.project.demo.TaskDemo"/>
<!--掃描項目包-->
<context:component-scan base-package="com.bbtree.project"/>
</beans>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--注冊定時器-->
<bean id="demoTimer"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--必須配置quartz延遲啟動,在應用啟動后起動,延遲20秒-->
<property name="startupDelay" value="20"/>
<!--普通觸發器,觸發器列表-->
<property name="triggers">
<list>
<ref bean="taskDemoTrigger"/>
</list>
</property>
</bean>
<!--CronTrigger配置-->
<bean id="taskDemoTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--定時任務詳細方法類-->
<property name="jobDetail" ref="taskDemoJobDetail"/>
<!--cron表達式-->
<property name="cronExpression">
<value>0/20 * * ? * *</value>
</property>
</bean>
<!--制定定時任務細節 調用哪個類 哪個方法-->
<bean id="taskDemoJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="taskDemo"/>
</property>
<property name="targetMethod">
<value>doTask</value>
</property>
<property name="concurrent" value="false"/>
</bean>
<!--定時任務的類-->
<bean id="taskDemo" class="com.bbtree.project.demo.TaskDemo"/>
<!--掃描項目包-->
<context:component-scan base-package="com.bbtree.project"/>
</beans>
注意事項:
1、配置文件applicationContext-scheduler.xml必須配置到applicationContext.xml里,才能進行掃描
<!-- 導入分割的spring配置文件 -->對應的applicationContext.xml必須在/WEB-INF/web.xml里配置
<import resource="applicationContext-beans.xml"/>
<import resource="applicationContext-datasource.xml"/>
<import resource="applicationContext-cache.xml"/>
<import resource="applicationContext-scheduler.xml"/>
<!-- Spring上下文配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
到此恭喜你已成功完成一個quartz的demo實例!