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
使用したツール
-
春2.5.6
-
クォーツ1.6.3
-
Struts 2.1.8
-
Struts2-spring-plugin 2.1.8
-
メイヴン2
-
Eclipse 3.6
Note
これにも興味があるかもしれません–Struts 2
+ Spring 3 + Quartz 1.8.6 integration example.。
1. プロジェクトフォルダ
プロジェクトのフォルダー構造は次のとおりです。

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.xml –applicationContext.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 ......