我创建了一个小型控制台应用程序来查看quartz 的工作原理,并且很容易在 main 方法中创建一个 applicationcontext
对象来运行 cron。好的,现在我处于一个由 Maven 管理的真实项目中,该项目使用某些模块中定义的 cron 作业。每个模块都有自己的 spring 配置文件。我有 3 个使用 quartz 的模块,因此它是在每个 spring 配置文件中设置的。 Web 应用程序模块是具有每个模块的依赖性的模块。
现在我几乎没有什么担忧了:
我应该像在控制台项目中一样创建
applicationcontext
还是应该加载它。如果是的话,我应该在哪里加载它。根据我在网上所做的研究,我使用
MethodInvokingJobDetailFactoryBean
来轻松进行单元测试。现在我必须使用CronExpression
类来测试getNextValidTimeAfter
,但我仍然不知道如何正确组织它
谁能帮我一下。我真的很感激。感谢您的阅读
最佳答案
根据评论,问题更接近“如何为 Web 应用程序加载 Spring 应用程序上下文文件”。
根据Section 3.8.5, "Convenient ApplicationContext instantiation for web applications" ,您可以使用 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>
-->
关于java - 在带有 Spring 的 Web 应用程序中使用 Quartz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520513/