Пример интеграции планировщика 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
-
Стойки 2.1.8
-
Struts2-Spring-плагин 2.1.8
-
Maven 2
-
Затмение 3.6
Note
Это может вас заинтересовать -Struts 2
+ Spring 3 + Quartz 1.8.6 integration example..
1. Папка проекта
Вот структура папок проекта.
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 ......