http://supben.iteye.com/blog/800704
极其简单的例子,下载之后启动一看遍明白。见附件。
工作类:
- package supben;
- import java.sql.Time;
- public class Job {
- public void work(){
- Time time = new Time(System.currentTimeMillis());
- System.out.println("this is a test ,and now is "+time);
- }
- }
package supben;
import java.sql.Time;
public class Job {
public void work(){
Time time = new Time(System.currentTimeMillis());
System.out.println("this is a test ,and now is "+time);
}
}
xml配置:
- <beans>
- <!-- 要调用的工作类 -->
- <bean id="quartzJob" class="supben.Job"></bean>
- <!-- 定义调用对象和调用对象的方法 -->
- <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <!-- 调用的类 -->
- <property name="targetObject">
- <ref bean="quartzJob" />
- </property>
- <!-- 调用类中的方法 -->
- <property name="targetMethod">
- <value>work</value>
- </property>
- </bean>
- <!-- 定义触发时间 -->
- <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
- <property name="jobDetail">
- <ref bean="jobtask" />
- </property>
- <!-- cron表达式 -->
- <property name="cronExpression">
- <value>0/10 * * * * ?</value>
- </property>
- </bean>
- <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
- <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref bean="doTime" />
- </list>
- </property>
- </bean>
<beans> <!-- 要调用的工作类 --> <bean id="quartzJob" class="supben.Job"></bean> <!-- 定义调用对象和调用对象的方法 --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject"> <ref bean="quartzJob" /> </property> <!-- 调用类中的方法 --> <property name="targetMethod"> <value>work</value> </property> </bean> <!-- 定义触发时间 --> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask" /> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>0/10 * * * * ?</value> </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="doTime" /> </list> </property> </bean>
因为设置了lazy-init="false",所以web项目一起就会执行调度任务。
如果想不起项目,测试
用下面的代码
- public static void main(String[] args)
- {
- System.out.println("Test start.");
- ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
- context.getBean("startQuertz");
- System.out.print("Test end..");
- }