Пример планировщика Struts 1 Spring 2.5.6 Quartz 1.6

Пример планировщика Struts 1 + Spring 2.5.6 + Quartz 1.6

В этом руководстве вы объедините платформу Struts + Spring + Quartz вместе для выполнения задачи планировщика. Spring поставляется с готовым решением для простой интеграции Struts и Quartz. Отношения следующие:

Struts <--(Plug-In)--> Spring <--(Spring-Helper)--> Quartz <---> Scheduler task

Используемые инструменты:

  1. Struts 1.3.10

  2. Весна 2.5.6

  3. Кварц 1.6.3

1. Задача планировщика

Создайте задачу планировщика, иprintMessage() - это метод, который вы хотите запланировать.

Файл: SchedulerTask.java

package com.example.common.quartz;

public class SchedulerTask
{
   public void printMessage() {
    System.out.println("Struts + Spring + Quartz integration example ~");
   }
}

2. Планировщик заданий

Чтобы интегрировать Spring с Quartz, создайте SchedulerJob, который расширяет SpringQuartzJobBean, вместо класса Quartz Job.

Файл: SchedulerJob.java

package com.example.common.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.printMessage();

    }
}

3. Помощник весеннего кварца

Spring поставляется с множеством вспомогательных классов Quartz для упрощения общих процессов планировщика Quartz - Scheduler, Trigget, Job и JobDetails.

Файл: spring-scheduler.xml



  
  

   
   

     

     
    
       
     
      

   

   
   

    
    

   

   
   
    
       
          
       
    

    
        
        
        
    
   

4. Распорки

Чтобы интегрировать Spring со Struts, вам необходимо включить SpringContextLoaderPlugIn в файл конфигурации Struts.

Файл: struts-config.xml






   

    

   

   
   
    
    

5. Как это устроено

Во время инициализации Struts он запустит контейнер Spring Ioc через подключаемый модуль SpringContextLoaderPlugIn Struts; Во время инициализации Spring он автоматически запустит запланированное задание Quartz.

В этом примере методprintMessage() будет выполняться каждые 5 секунд.

Скачать исходный код

Рекомендации

Для более подробного объяснения вы можете обратиться к следующим руководствам.