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

  4. Struts2-spring-plugin 2.1.8

  5. メイヴン2

  6. Eclipse 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、およびQuartz jarファイルが必要です。

ファイル: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を拡張するクラスを作成し、setterメソッドを介してスケジューラータスク(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.xmlapplicationContext.xmlファイルを作成し、すべてのSpring + Quartz統合要素を内部に配置します。 詳細については、XMLコメントをお読みください。



   
   

   
   

     

     
     
        
     
      
   

   
   

    
    

   

   
   
    
       
          
       
    

    
        
        
        
    
   

5. Struts 2 +春

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のジョブが実行されます。10秒ごとにSchedulerTask.printSchedulerMessage()が呼び出されます。

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

ソースコードをダウンロード