可以在固定的时间执行指定的任务
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容器即可进行