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!