Struts 1 + Spring 2.5.6 + Quartz 1.6スケジューラーの例
このチュートリアルでは、Struts + Spring + Quartzフレームワークを統合して、スケジューラタスクを実行します。 Springには、StrutsとQuartzを簡単に統合するための簡単なソリューションが付属しています。 次のような関係:
Struts <--(Plug-In)--> Spring <--(Spring-Helper)--> Quartz <---> Scheduler task
使用ツール:
-
Struts 1.3.10
-
春2.5.6
-
クォーツ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と統合するには、Quartz Jobクラスの代わりに、SpringのQuartzJobBeanを拡張するSchedulerJobを作成します。
ファイル: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スケジューラプロセス全体(Scheduler、Trigget、Job、JobDetails)を簡素化するための多くのQuartzヘルパークラスが付属しています。
ファイル:spring-scheduler.xml
4. 支柱
SpringをStrutsと統合するには、SpringのContextLoaderPlugInをStruts構成ファイルに含める必要があります。
ファイル:struts-config.xml
5. 使い方
Strutsの初期化中に、SpringのContextLoaderPlugInStrutsプラグインを介してSpringIocコンテナを起動します。 Springの初期化中に、Quartzのスケジュールされたジョブが自動的に開始されます。
この例では、printMessage()メソッドは5秒ごとに実行されます。