Exemple d'intégration de l'ordonnanceur Struts 2 + Spring 2.5.6 + Quartz 1.6
Exemple d'intégration de Struts 2 + Spring 2.5.6 + Quartz Scheduler
Dans ce tutoriel, nous allons vous montrer comment intégrer le planificateur deStruts 2 + Spring 2.5.6 + Quartz 1.6.5 ensemble. The relationship look like this :
Struts 2 <-- Plugin --> Spring <--(Helper)--> Quartz <---> Scheduler task
Les outils utilisés
-
Printemps 2.5.6
-
Quartz 1.6.3
-
Jambes 2.1.8
-
Struts2-spring-plugin 2.1.8
-
Maven 2
-
Eclipse 3.6
Note
Vous pouvez également vous intéresser à ce -Struts 2
+ Spring 3 + Quartz 1.8.6 integration example..
1. Dossier de projet
Voici la structure des dossiers du projet.
2. Bibliothèques de dépendances
Obtenez toutes les bibliothèques de dépendances, vous avez besoin du fichier jar Spring, Struts2, Strut2-Spring-Plugin et Quartz.
Fichier: pom.xml
...... org.apache.struts struts2-core 2.1.8 opensymphony quartz 1.6.3 commons-collections commons-collections 3.2.1 org.springframework spring 2.5.6 org.springframework spring-web 2.5.6 org.apache.struts struts2-spring-plugin 2.1.8
3. Tâche du planificateur
Mettez toute la logique du planificateur dans cette classe.
Fichier: SchedulerTask.java
package com.example.quartz; public class SchedulerTask { public void printSchedulerMessage() { System.out.println("Struts 2 + Spring + Quartz ......"); } }
4. Ressort + Quartz
Pour intégrer Spring et Quartz, créez une classe étend lesorg.springframework.scheduling.quartz.QuartzJobBean
, référencez la tâche du planificateur (SchedulerTask.java) via une méthode setter et placez la logique du planificateur dans la méthodeexecuteInternal()
.
Fichier: SchedulerJob.java
package com.example.quartz; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class SchedulerJob extends QuartzJobBean { private SchedulerTask schedulerTask; public void setSchedulerTask(SchedulerTask schedulerTask) { this.schedulerTask = schedulerTask; } protected void executeInternal(JobExecutionContext context) throws JobExecutionException { schedulerTask.printSchedulerMessage(); } }
File : applicationContext.xml - Crée un fichierapplicationContext.xml
, place tous les éléments d'intégration deSpring + Quartz à l'intérieur. Lisez les commentaires XML pour plus de détails.
5. Struts 2 + Spring
Pour intégrerStruts 2 + Spring, il suffit de mettre la classe d'écouteurorg.springframework.web.context.ContextLoaderListener
dans le fichierweb.xml
.
Fichier: web.xml
Struts 2 Web Application struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* org.springframework.web.context.ContextLoaderListener
6. Demo
Lorsque Strut2 est démarré, il appelle Spring et exécute le travail de Quartz défini - appelezSchedulerTask.printSchedulerMessage()
toutes les 10 secondes.
INFO: ... initialized Struts-Spring integration successfully 16 Julai 2010 12:51:38 PM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 16 Julai 2010 12:51:38 PM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 16 Julai 2010 12:51:38 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/21 config=null 16 Julai 2010 12:51:38 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 2110 ms Struts 2 + Spring + Quartz ...... Struts 2 + Spring + Quartz ...... Struts 2 + Spring + Quartz ...... Struts 2 + Spring + Quartz ...... Struts 2 + Spring + Quartz ......
Télécharger le code source
Téléchargez-le -Struts2-Spring-Quartz-Integration-Example.zip