在带有 Spring 的 Web 应用程序中使用 Quartz

发布于 2024-08-06 11:46:17 字数 539 浏览 7 评论 0原文

我创建了一个小型控制台应用程序来查看quartz 的工作原理,并且很容易在 main 方法中创建一个 applicationcontext 对象来运行 cron。好的,现在我处于一个由 Maven 管理的真实项目中,该项目使用某些模块中定义的 cron 作业。每个模块都有自己的 spring 配置文件。我有 3 个使用石英的模块,因此它是在每个 spring 配置文件中设置的。 Web 应用程序模块是具有每个模块的依赖性的模块。

现在我几乎没有什么顾虑:

  1. 我应该像在控制台项目中一样创建applicationcontext还是应该加载它。如果是,我应该在哪里加载它。

  2. 根据我在网上所做的研究,我使用 MethodInvokingJobDetailFactoryBean 来轻松进行单元测试。现在我必须使用CronExpression类来测试getNextValidTimeAfter

任何人都可以帮助我。我真的很感激。感谢您的阅读

I've created a small console application to see how quartz work and it was easy to create an applicationcontext object inside the main method to get the cron run. OK now I'm in a real project managed by maven and which is using cron jobs defined in some of the modules. Each of the module has his own spring config file. I had 3 of the modules using quartz so it was setup in each of the spring config file. The web app module is the one who has the dependency of each of the modules.

Now i had few concerns:

  1. should I created the applicationcontext as in the console project or it's supposed to be loaded. If yes, where am I supposed to load it.

  2. based on research on the Internet I did on line I use MethodInvokingJobDetailFactoryBean for easy unit testing. And now that I have to use the CronExpression class to test the getNextValidTimeAfter, I still don't know how to organize it properly

Can anyone give me a hand. I'd really appreciate it. Thanks for reading

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

絕版丫頭 2024-08-13 11:46:17

根据评论,问题更接近于“如何为 Web 应用程序加载 Spring 应用程序上下文文件”。

根据 第 3.8.5 节,“方便的 ApplicationContext Web 应用程序的实例化”,您可以使用 ContextLoaderListener 注册一个 ApplicationContext,如下所示(将其添加到您的 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>
-->

As per comment, the question is closer to "How to load Spring application context file(s) for a Web application".

According to Section 3.8.5, "Convenient ApplicationContext instantiation for web applications", you can register an ApplicationContext using the ContextLoaderListener as follows (add this to your web.xml file):

<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>
-->
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文