Regardons directement le fichier de configuration Spring :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" http://www.springframework.org/schema/beans "
xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd ">
<bean id="testTimerTask" class="com.test.timerTask.TestTimerTask"></bean>
<bean id="serviceFor" class="com.test.timerTask.Service4Job"></bean>
<!-- La première étape : définir la classe de planification des tâches, c'est-à-dire la classe qui doit effectuer le travail professionnel. Il existe deux situations, choisissez-en une pour la planification -->.
<!-- Classe de planification de tâches, cas 1 : Utiliser une classe héritée de la classe abstraite QuartzJobBean pour implémenter la planification de tâches -->
<bean id="testTimerTaskJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<!-- Notez que le nom complet de la classe est injecté ici, pas une référence à la classe -->
<property name="jobClass" value="com.test.timerTask.TestTimerTask"></property>
<!-- Indique l'injection des beans requis dans la classe testTimerTask -->
<nom de la propriété="jobDataAsMap">
<carte>
<entry key="service4Job" value-ref="serviceFor"></entry>
</carte>
</propriété>
</haricot>
<!-- Cas de classe de planification de tâches 2 : Planifiez directement les méthodes métier dans les classes existantes sans hériter de QuartzJobBean -->
<bean id="noJobBeanTaskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="serviceFor"></property>
<property name="targetMethod" value="job"></property>
</haricot>
<!-- Étape 2 : Définir le déclencheur, indiquant quand et à quelle fréquence planifier les tâches définies dans la première étape -->
<!-- Cas de déclenchement 1 : Basé sur l'appel de tâche SimpleTriggerBean -->
<bean id="quartzSimpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="testTimerTaskJob"></property>
<property name="repeatInterval" value="3000"></property>
<property name="startDelay" value="2000"></property>
</haricot>
<!-- Cas de déclenchement 2 : basé sur l'appel de tâche SimpleTriggerBean -->
<bean id="quartzCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="noJobBeanTaskJob"></property>
<!-- La forme chaîne de cronExpression est utilisée ici 0/3 signifie une exécution toutes les 3 secondes -->.
<property name="cronExpression" value="0/3 * * * * ?"></property>
</haricot>
<!-- Étape 3 : Démarrer la planification des tâches -->
<!-- Démarrer l'exécution du déclencheur de planification des tâches-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<nom de la propriété="triggers">
<liste>
<ref bean="quartzCronTrigger"/>
</liste>
</propriété>
</haricot>
</haricots>
//================================================= ===
Deux classes : TestTimerTask et Service4Job
importer org.quartz.JobExecutionContext ;
importer org.quartz.JobExecutionException ;
importer org.springframework.scheduling.quartz.QuartzJobBean ;
la classe publique TestTimerTask étend QuartzJobBean{
Service4Job privé service4Job ;
public void setService4Job (Service4Job service4Job) {
this.service4Job = service4Job ;
}
@Outrepasser
void protégé exécuterInternal (JobExecutionContext arg0)
lance JobExecutionException {
this.service4Job.job();
}
}
classe publique Service4Job {
travail vide public(){
System.out.println("**** "+System.currentTimeMillis());
}
}
(ce mois-ci) Republier : http://yanda20056.blog.163.com/blog/static/5650193120091113115434635/
Cet article provient du blog CSDN Veuillez indiquer la source lors de la réimpression : http://blog.csdn.net/thismonth/archive/2009/12/30/5103969.aspx.