1.配置文件
在spring配置文件中添加xmlns:task="http://www.springframework.org/schema/task"和在xsi:schemaLocation添加http://www.springframework.org/schema/task和 http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <context:property-placeholder ignore-unresolvable="true" location="classpath*:/config.properties" /> <!-- 自动扫描包 --> <context:component-scan base-package="cn.com.prac.controller" /> <!-- 启动定时任务的注解驱动 --> <task:annotation-driven /> <!-- 配置定时任务的线程池 --> <task:scheduler id="myScheduler" pool-size="5" /> ...... </beans>
2.定时任务类
package cn.com.prac.controller; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ScheduleTest { @Scheduled(cron="* * * * * ?") public void test(){ System.out.println("--------测试:每秒执行一次"); } @Scheduled(cron="0/5 * * * * ?") public void test2(){ System.out.println("--------测试:每5秒执行一次"); } }
3.不用配置文件,使用@EnableScheduling,@Component,@Scheduled注解
@EnableScheduling:启对计划任务的支持,@Component:定义spring管理Bean,@Scheduled:该方法是计划任务
package cn.com.prac.controller; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @EnableScheduling @Component public class ScheduleTest { @Scheduled(cron="* * * * * ?") public void test(){ System.out.println("--------测试:每秒执行一次"); } @Scheduled(cron="0/5 * * * * ?") public void test2(){ System.out.println("--------测试:每5秒执行一次"); } }