Exemple de planificateur Struts 2 + Spring 3 + Quartz 1.8
Dans ce tutoriel, nous allons vous montrer comment intégrerStruts 2 + Spring 3 + Quartz 1.8.6.
Why NOT Quartz 2?
Actuellement, Spring 3 ne prend toujours PAS en charge les API Quartz 2, voir ceSPR-8581 bug report. Mettra à jour cet article à nouveau une fois le bogue corrigé.
Les outils utilisés
-
Printemps 3.1.5.RELEASE
-
Quartz 1.8.6
-
Jambes 2.3.4
-
Struts2-spring-plugin 2.3.4
-
Maven 3
-
Eclipse 4.2
1. Dossier de projet
Voici la structure finale des dossiers du projet.
2. Bibliothèques de dépendances
L'intégration est similaire avec ceSpring 2.5.6 + Quartz 1.6, seules les dépendances de Spring3 sont un peu désordonnées, lisez Maven pom.xml ci-dessous pour toutes les dépendances dont vous avez besoin pour développer ce tutoriel.
Consultez les commentaires XML pour comprendre pourquoi vous avez besoin de ce fichier jar.
Fichier: pom.xml
...... org.apache.struts struts2-core 2.3.4 org.quartz-scheduler quartz 1.8.6 org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-web 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.apache.struts struts2-spring-plugin 2.3.4
3. Ressort 3 + Quartz
Pour intégrer à la fois Spring3 et Quartz, créez une classe étendorg.springframework.scheduling.quartz.QuartzJobBean
et implémente la méthodeexecuteInternal()
, tout comme vous créez un travail de planificateur dans Quartz.
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 { protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2"); } }
File : applicationContext.xml - met tout le planificateur de Quartz et les détails de Spring enapplicationContext.xml
. Voir les commentaires XML pour plus de détails.
4. Jambes de force 2 + ressort 3
Pour intégrerStruts 2 + Spring, il suffit de mettre la classe d'écouteurorg.springframework.web.context.ContextLoaderListener
dans le fichierweb.xml
.
Note
Pour plus de détails, veuillez lire ceStruts 2 + Spring
integration example.
Fichier: web.xml
Struts 2 Web Application struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* org.springframework.web.context.ContextLoaderListener
5. Demo
Terminé, lorsque Strut2 est démarré, il appelle Spring et exécute le travail de Quartz défini.
Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Jul 24, 2012 4:49:07 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 3430 ms Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 //run this every 10 seconds. Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2
Télécharger le code source
Téléchargez-le -Struts2-Spring3-Quartz-Example.zip (20 Ko).