Struts 2 + Spring 3 + Quartz 1.8 Пример планировщика
В этом руководстве мы покажем вам, как интегрироватьStruts 2 + Spring 3 + Quartz 1.8.6.
Why NOT Quartz 2?
В настоящее время Spring 3 все еще НЕ поддерживает API Quartz 2, см. этотSPR-8581 bug report. Обновит эту статью снова, как только будет выпущена исправленная ошибка.
Используемые инструменты
-
Весна 3.1.5.РЕЛИЗ
-
Кварц 1.8.6
-
Стойки 2.3.4
-
Struts2-Spring-плагин 2.3.4
-
Maven 3
-
Затмение 4.2
1. Папка проекта
Вот окончательная структура папок проекта.
2. Библиотеки зависимостей
Интеграция аналогична этомуSpring 2.5.6 + Quartz 1.6, только зависимости Spring3 немного запутаны, прочтите Maven pom.xml ниже, чтобы узнать обо всех зависимостях, необходимых для разработки этого руководства.
См. Комментарии XML, чтобы понять, зачем вам эта банка.
Файл: pom.xml
...... org.apache.struts struts2-core 2.3.4 org.quartz-scheduler quartz 1.8.6 org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-web 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.apache.struts struts2-spring-plugin 2.3.4
3. Весна 3 + Кварц
Чтобы интегрировать как Spring3, так и Quartz, создайте класс extendsorg.springframework.scheduling.quartz.QuartzJobBean
и реализует методexecuteInternal()
, точно так же, как вы создаете задание планировщика в Quartz.
Файл: 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 { protected void executeInternal(JobExecutionContext context) throws JobExecutionException { System.out.println("Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2"); } }
File : applicationContext.xml - помещает весь планировщик Quartz и детали Spring вapplicationContext.xml
. См. Подробности в комментариях XML.
4. Распорки 2 + пружина 3
Чтобы интегрироватьStruts 2 + Spring, просто поместите класс слушателяorg.springframework.web.context.ContextLoaderListener
в файлweb.xml
.
Note
Для подробностей прочтите этотStruts 2 + Spring
integration example.
Файл: web.xml
Struts 2 Web Application struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* org.springframework.web.context.ContextLoaderListener
5. Demo
Готово, когда Strut2 запускается, он вызывает Spring и запускает заданное задание Quartz.
Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Jul 24, 2012 4:49:07 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Jul 24, 2012 4:49:07 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 3430 ms Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 //run this every 10 seconds. Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2 Struts 2.3.4 + Quartz 1.8.6 + Spring 3.1.2
Скачать исходный код
Скачать -Struts2-Spring3-Quartz-Example.zip (20 КБ).