该博客使用了ssm整合的一些代码,所以就不罗列出所有代码
1.导入Quartz的Maven依赖
<!-- quartz 的jar -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
2.编写定时任务1和任务2
public class Task {
public void execute() {
// 这里写你的任务逻辑
System.out.println("Task");
}
}
public class Task2 {
public void execute() {
// 这里写你的任务逻辑
System.out.println("Task2");
}
}
3.编写配置文件timer-bean.xml(注意配置文件要导入task命名空间)
<?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:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="task" class="com.tansen.selecting.task.Task"></bean>
<bean id="task2" class="com.tansen.selecting.task.Task2"></bean>
<!--定义任务 -->
<bean id="jobDetailFactoryBean1"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="task" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<!--定义任务 -->
<bean id="jobDetailFactoryBean2"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="task2" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<!--定义触发器 -->
<bean id="cronTriggerFactoryBean1"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--注入触发器的工作任务 -->
<property name="jobDetail" ref="jobDetailFactoryBean1"></property>
<!--定义的是触发器的事件格式的表达式 -->
<property name="cronExpression" value="0/3 * * * * ?"></property>
</bean>
<!--定义触发器 -->
<bean id="cronTriggerFactoryBean2"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--注入触发器的工作任务 -->
<property name="jobDetail" ref="jobDetailFactoryBean2"></property>
<!--定义的是触发器的事件格式的表达式 -->
<property name="cronExpression" value="0/6 * * * * ?"></property>
</bean>
<!--定义的是调度器 -->
<bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerFactoryBean1" />
<ref bean="cronTriggerFactoryBean2" />
</list>
</property>
</bean>
</beans>
在spring配置文件中(applicationContext.xml)导入timer-bean.xml
<import resource="timer-bean.xml"/>
运行结果