<---------spring-quartz.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-4.1.xsd">
<context:component-scan base-package="test.spring.quartz" />
<bean id="simpleJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="firstTask" />
<property name="targetMethod" value="printInfo" />
</bean>
<bean name="complexJobDetail"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="test.spring.quartz.ScheduledJob" />
<property name="jobDataMap">
<map>
<entry key="secondTask" value-ref="secondTask" />
</map>
</property>
<property name="durability" value="true" />
</bean>
<bean id="simpleTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="simpleJobDetail" />
<property name="startDelay" value="1000" />
<property name="repeatInterval" value="2000" />
</bean>
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="complexJobDetail" />
<property name="cronExpression" value="0/5 * * ? * SAT-SUN" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="simpleJobDetail" />
<ref bean="complexJobDetail" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
<ref bean="cronTrigger" />
</list>
</property>
</bean>
</beans>
/**
* @Title: MyBean.java
* @Package test.spring.quartz.scheduling
* @Description:
* @author L
* @date 2015年10月11日 上午9:34:15
* @version V1.0
*/
package test.spring.quartz.scheduling;
import org.springframework.stereotype.Component;
/**
* @ClassName: outTask
* @Description:
* @author L
* @date 2015年10月11日 上午9:34:15
*
*/
@Component("firstTask")
public class FirstTask {
public void printInfo() {
System.out.println("隔2秒运行一次");
}
}
/**
* @Title: AnotherBean.java
* @Package test.spring.quartz.scheduling
* @Description:
* @author L
* @date 2015年10月11日 上午9:31:14
* @version V1.0
*/
package test.spring.quartz.scheduling;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
@Component("secondTask")
public class SecondTask {
/**
* @Title: printAnotherMessage
* @Description:
*/
public void printSecondTaskInfo() {
System.out.println("每5秒运行一次");
}
@SuppressWarnings("unused")
public static void main(String args[]) {
@SuppressWarnings("resource")
AbstractApplicationContext context = new ClassPathXmlApplicationContext("quartz-context.xml");
}
}
/**
* @Title: ScheduledJob.java
* @Package test.spring.quartz
* @Description:
* @author L
* @date 2015年10月11日 上午9:27:11
* @version V1.0
*/
package test.spring.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import test.spring.quartz.scheduling.SecondTask;
public class ScheduledJob extends QuartzJobBean {
private SecondTask secondTask;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
secondTask.printSecondTaskInfo();
}
/**
* @param secondTask
* the secondTask to set
*/
public void setSecondTask(SecondTask secondTask) {
this.secondTask = secondTask;
}
}