использование кварца в веб-приложении с пружиной - PullRequest
2 голосов
/ 05 октября 2009

Я создал небольшое консольное приложение, чтобы посмотреть, как работает кварц, и было легко создать объект applicationcontext внутри основного метода для запуска cron. Хорошо, теперь я нахожусь в реальном проекте, управляемом maven и использующем задания cron, определенные в некоторых модулях. Каждый модуль имеет свой собственный весенний конфигурационный файл. У меня было 3 модуля, использующих кварц, так что он был настроен в каждом из весенних конфигурационных файлов. Модуль веб-приложения - это тот, у кого есть зависимость от каждого из модулей.

Теперь у меня было несколько проблем:

  1. я должен создать applicationcontext как в консольном проекте, или он должен быть загружен. Если да, где я должен его загрузить.

  2. на основе исследований в Интернете, которые я проводил в Интернете, я использую MethodInvokingJobDetailFactoryBean для простого юнит-тестирования. И теперь, когда я должен использовать класс CronExpression для проверки getNextValidTimeAfter, я все еще не знаю, как правильно его организовать

Может кто-нибудь дать мне руку. Я действительно ценю это. Спасибо за чтение

1 Ответ

4 голосов
/ 05 октября 2009

Согласно комментарию, вопрос ближе к «Как загрузить файлы контекста приложения Spring для веб-приложения».

Согласно Разделу 3.8.5, «Удобное создание экземпляров ApplicationContext для веб-приложений» , вы можете зарегистрировать ApplicationContext, используя ContextLoaderListener следующим образом (добавьте это в ваш файл web.xml):

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/daoContext.xml /WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- or use the ContextLoaderServlet instead of the above listener
<servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
-->
...