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