可以在固定的時間執行指定的任務
1.基本格式
用空格分開的7個部分
①秒:0~59
②分鐘:0~59
③小時:0~23
④日期:0~31
⑤月:0~11
⑥星期:1~7(1爲星期日)
⑦年份:1970~2099可選
2.設置方式
①指定具體值:5
②連續區間:9-12
③有間隔的區間:8-18/4
斜槓後面爲間隔跨度
④具體值的列表:1,3,5
⑤通配符
[1]*:表示在取值範圍內的所有時間點都執行調度任務
[2]/:用於表示時間間隔
[3]?:僅被用於day-of-month字段或day-of-week字段,表示不指定值 dayofmonth 和 dayof week必須有一個是?
[4]L:僅被用於day-of-month字段或day-of-week字段,表示一個月或一個星期的最後一天
[5]W("weekday"):只能用在day-of-month字段,代表工作日
[6]#:只能用在day-of-week字段。用來指定這個月的第幾個周幾
[7]C:指和calendar聯繫後計算過的值。
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.公司名.quartz.MyQuartz"/>
</bean>
<bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 指定克龍表達式 -->
<property name="cronExpression" value="*/3 * * * * ?"/> //表示每三秒鐘
<!-- 裝配jobDetailBean -->
<property name="jobDetail" ref="jobDetailBean"></property>
</bean>
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<array>
<ref bean="cronTriggerBean"/>
</array>
</property>
</bean>
</beans>
pojo對象:
public class MyQuartz extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
//在這裏做你想做的操作
//如果想要在這個pojo中注入ioc容器中的對象來進行使用的話 不可以使用 autowired註解 因爲我們注入的
//並不是這個MyQuartz pojo類 應該在這個MyQuartz類中提供你所需要組件的set()方法,並在JobDetailBean的jobDataMap屬性中配置
}
}
啓動spring容器即可進行