Spring中實現定時任務其實很簡單,可以使用spring中自帶的task 相當於輕量級的Quartz,並且spring 3.0 之后支持注解的方式,使用起來非常簡單,方便,具體實現如下:
第一步,修改spring.xml配置文件
在xsi:schemaLocation中加入
1 http://www.springframework.org/schema/task 2 http://www.springframework.org/schema/task/spring-task-3.2.xsd
同時加入
1 xmlns:task="http://www.springframework.org/schema/task
第二步,開啟task注解
1 <task:annotation-driven/>
第三步,編寫作業類,並在作業類中加入注解
1 @Component("myTask") 2 @Lazy(false) 3 public class MyTask { 4 5 @Scheduled(cron="0/5 * * * * ?") 6 public void run(){ 7 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 8 System.out.println(sdf.format(new Date()) + "定時任務執行"); 9 } 10 }
注意:使用Lazy注解是因為spring 配置文件采用懶加載的原因default-lazy-init="true" 這個配置會導致 @Scheduled失效