Exemple d’intégration du planificateur Struts 2 Spring 2.5.6 Quartz 1.6

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

  1. Printemps 2.5.6

  2. Quartz 1.6.3

  3. Jambes 2.1.8

  4. Struts2-spring-plugin 2.1.8

  5. Maven 2

  6. 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.

Struts 2 Spring Quartz integration example

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