tomcat中quartz被执行两次

来源:互联网 发布:阿里云 腾讯云 华为云 编辑:程序博客网 时间:2024/05/17 18:41

做项目中 在整合另外一个模块之前,放在tomcat中是执行正常的;

整合另外一个模块的时候,在web.xml中添加了一些<filter></filter>,在放到tomcat中quartz就会被执行两次。

在网上查的:

web容器启动的时候,读取applicationContext.xml文件时,会加载一次。
第二次:Spring本身会加载applicationContext.xml一次。
一般来说,我们的quartz配置就是写在applicationContext.xml文件里的。
解决办法很简单
先把quartz配置信息提取出来,单独存成一个文件,比如applicationContext-quartz.xml
然后修改web.xml,让web容器启动时,可以加载该文件:
 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:/applicationContext.xml,classpath*:/applicationContext-quartz.xml<param-value>
  </context-param>
  <listener>
       <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
   </listener>这样quartz只会在web容器启动时加载一次,Spring不会再加载了。

这样我的问题解决了,但最后发现我的问题不是被这个方案解决的,这个方案之后帮助我把quartz   从applicationContext.xml文件中抽出来(原来是import进去的)

问题的原因在于 整合另一个模块的中有手动加载过applicationContext.xml文件,所以造成又一次注入quartz.

原创粉丝点击