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