1、配置xml文件spring-timer.xml,注意xmlns中引入task和spring-task.xsd
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
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.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"
>
<!--配置Spring定时任务-->
<!-- 自动扫描的包名 -->
<context:component-scan base-package="com.timer.*" />
<!-- 定时器开关 -->
<task:annotation-driven />
</beans>
2、web.xml中配置spring-timer.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-service.xml,
classpath:spring/spring-dao.xml,
classpath:spring/spring-timer.xml
</param-value>
</context-param>
3、配置需要定时执行的方法
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Lazy(false)
@Component("TestTimeTask")
public class TestTimeTask {
//每5秒执行一次
@Scheduled(cron = "0/5 * * * * ? ")
public void autoWork() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
System.out.println(sdf.format(date)+"-----测试定时任务");
}
}
@Scheduled注解配置定时任务,cron表达时为执行的时机,若不会写表达式,网上有生成cron表达式的网站。
运行结果: