Spring 任务调度(XML实现)
spring-4.0.3.RELEASE, quartz-2.2.1
1.applicationContext.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"
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">
<import resource="applicationContext-task.xml"/>
</beans>
2.applicationContext-task.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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
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
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd">
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
<bean id="helloWorldTask" class="com.jin.service.HelloWorldTask"/>
<bean id="helloWorldJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="helloWorldTask" />
<property name="targetMethod" value="doSomething" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="helloWorldJobDetail" />
<!-- 每隔5秒执行一次 -->
<property name="cronExpression" value="0/5 * * * * ?" />
<!-- 延迟5秒再执行 -->
<property name="startDelay" value="5000" />
</bean>
</beans>
3.测试类
package com.jin.service;
public class HelloWorldTask {
private void doSomething() throws Exception
{
System.out.println("doSomething is invoked!");
}
}
4.测试
package com.jin;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ClientMain {
public static void displayAllBean(ApplicationContext context)
{
String[] beans = context.getBeanDefinitionNames();
for(String bean : beans)
System.out.println(bean);
}
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
输出结果:每隔5秒输出
doSomething is invoked!
本文介绍如何使用 Spring 4.0.3 和 Quartz 2.2.1 通过 XML 配置文件实现定时任务调度。示例展示了配置 SchedulerFactoryBean、JobDetail 以及 CronTrigger 的过程,并提供了一个每隔 5 秒执行一次的任务示例。
108

被折叠的 条评论
为什么被折叠?



