1. 程式人生 > >spring配置定時任務

spring配置定時任務

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表示式的網站。

執行結果: