有一个springmvc的定时任务,启动时都是执行一遍,发一个请求之后,每次都是执行两遍,请问怎么回事?

打印结果:
1480425640001
1480425640001
1480425650000
1480425650000
1480425660001
1480425660001
每十秒钟执行一次,每次都是两遍;代码如下:
application.xml文件,
<task:annotation-driven scheduler="admin" mode="proxy" />
<task:scheduler id="admin" pool-size="1" />
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
<context:component-scan base-package="*" />

web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<context-param>
    <param-name>Log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>user.root</param-value>
</context-param>
<servlet>
    <servlet-name>Dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext-mvc.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Dispatcher</servlet-name>
    <url-pattern>***</url-pattern>
</servlet-mapping>
阅读 5.5k
1 个回答

应该是你的任务在spring容器里面注册了两次
(spring有父子容器之分,context 和 mvc 两个)
从现象来看,applicationContext-mvc.xml文件扫描的范围去掉 你的任务相关的类,问题就可以解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题