quartz常与spring做整合
Demo目录结构
MyJob.java
package cn.itcast.job;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyJob {
public void showTime() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
public void showTime1() {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
}
applicationContext_job.xml
<?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="myJob" class="cn.itcast.job.MyJob">
</bean>
<!-- 任务类描述 -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myJob"></property>
<property name="targetMethod" value="showTime"></property>
</bean>
<!-- 触发器 -->
<bean id="mailTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"></property>
<property name="cronExpression" value="0/3 * * ? * * *"></property>
</bean>
<!--
秒 分 时 日 月 周 年
0/3 * * ? * * *
0-59 0-59 0-23 1-31 1-12 1-7 1970-2099
常用符号:
* 范围内任意
?放弃(日和周只可有一个为?因为日和周可能会冲突)
/ m/n从m开始每n执行
- m-n 从m到n每秒执行
, 指定秒数执行 1,3,6,7,8,5....与顺序无关
L last 只用在日和周的位置 例:周的位置1L 指的是最后一个周日
-->
<!-- 总管理容器 -->
<bean id="startQuartz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
<property name="triggers">
<list>
<ref bean="mailTrigger"/>
</list>
</property>
</bean>
</beans>
main方法启动容器
package cn.itcast.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class QuartzTest {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("classpath:applicationContext_job.xml");
}
}