原因是在web.xml要实例化两次分别是<servlet></servlet>和<context-param></context-param>里,所以要将定时器对任务,单独写到一个xml文件里,配置如下
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/spring/spring-*.xml,classpath*:config/spring/task-mvc.xml</param-value>
</context-param>
同时定时器的xml代码如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- 注解扫描包 -->
<context:component-scan base-package="com.xh"/>
<!-- 开启注解 -->
<mvc:annotation-driven/>
<task:annotation-driven/> <!-- 定时器开关-->
<bean id="myTaskXml" class="com.xh.tools.MyTaskXml"></bean>
<task:scheduled-tasks>
<!--
这里表示的是每隔五秒执行一次
-->
<task:scheduled ref="myTaskXml" method="show" cron="10 30 14 * * *" />
</task:scheduled-tasks>
</beans>
代表下午每天2点半执行