Пример интеграции планировщика Struts 2 Spring 2.5.6 Quartz 1.6

Пример интеграции планировщика Struts 2 + Spring 2.5.6 + Quartz 1.6

Struts 2 + Spring 2.5.6 + пример интеграции планировщика Quartz

В этом руководстве мы покажем вам, как интегрировать планировщикStruts 2 + Spring 2.5.6 + Quartz 1.6.5 вместе. The relationship look like this :

Struts 2 <-- Plugin --> Spring <--(Helper)--> Quartz <---> Scheduler task

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

  1. Весна 2.5.6

  2. Кварц 1.6.3

  3. Стойки 2.1.8

  4. Struts2-Spring-плагин 2.1.8

  5. Maven 2

  6. Затмение 3.6

Note
Это может вас заинтересовать -Struts 2 + Spring 3 + Quartz 1.8.6 integration example..

1. Папка проекта

Вот структура папок проекта.

Struts 2 Spring Quartz integration example

2. Библиотеки зависимостей

Получите все библиотеки зависимостей, вам понадобится Spring, Struts2, Strut2-Spring-Plugin и файл jar Quartz.

Файл: 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. Задача планировщика

Поместите всю логику планировщика в этот класс.

Файл: SchedulerTask.java

package com.example.quartz;

public class SchedulerTask {

   public void printSchedulerMessage() {

       System.out.println("Struts 2 + Spring + Quartz ......");

   }
}

4. Весна + Кварц

Чтобы интегрировать Spring и Quartz, создайте класс, расширяющийorg.springframework.scheduling.quartz.QuartzJobBean, создайте ссылку на задачу планировщика (SchedulerTask.java) через метод установки и поместите логику планировщика в методexecuteInternal().

Файл: 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 - Создайте файлapplicationContext.xml, поместите в него все элементы интеграцииSpring + Quartz. Прочтите комментарии XML для подробностей.



   
   

   
   

     

     
     
        
     
      
   

   
   

    
    

   

   
   
    
       
          
       
    

    
        
        
        
    
   

5. Struts 2 + Spring

Чтобы интегрироватьStruts 2 + Spring, просто поместите класс слушателяorg.springframework.web.context.ContextLoaderListener в файлweb.xml.

Файл: web.xml




  Struts 2 Web Application

  
    struts2
    
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
  

  
    struts2
    /*
  

  
    
      org.springframework.web.context.ContextLoaderListener
    
  

6. Demo

Когда Strut2 запускается, он вызывает Spring и запускает определенное задание Quartz - вызываетSchedulerTask.printSchedulerMessage() каждые 10 секунд.

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

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