Spring @Scheduled是Spring计划任务的一种很简洁的实现。用来替代Quartz的方案。
要使用此特性,需要Spring3.2以上版本。用法:
1、在xml的配置中,需要加入:
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.2.xsd"
2、写一个简单例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by leizhimin on 2014/8/16. * * @author leizhimin 2014/8/16 17:46 */ @Component @Lazy ( false ) public class TestJob { public static SimpleDateFormat sdf_yyyyMMddHHmmss = new SimpleDateFormat( "yyyyMMddHHmmss" ); @Scheduled (cron = "0/5 * * * * ?" ) public void exejob() { System.out.println(sdf_yyyyMMddHHmmss.format( new Date()) + " :执行中。。。" ); } } |
每隔5秒中就会输出一条信息。
------------------------------------
还可以在一个类上写多个任务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @Component @Lazy ( false ) public class TestJob { public static SimpleDateFormat sdf_yyyyMMddHHmmss = new SimpleDateFormat( "yyyyMMddHHmmss" ); @Scheduled (cron = "0/5 * * * * ?" ) public void exejob1() { System.out.println(sdf_yyyyMMddHHmmss.format( new Date()) + " :AAAA 执行中。。。" ); } @Scheduled (cron = "0/5 * * * * ?" ) public void exejob2() { System.out.println(sdf_yyyyMMddHHmmss.format( new Date()) + " :BBBB 执行中。。。" ); } @Scheduled (cron = "0/5 * * * * ?" ) public void exejob3() { System.out.println(sdf_yyyyMMddHHmmss.format( new Date()) + " :CCCC 执行中。。。" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 20141010225850 : AAAA 执行中。。。 20141010225850 : BBBB 执行中。。。 20141010225850 : CCCC 执行中。。。 20141010225855 : AAAA 执行中。。。 20141010225855 : BBBB 执行中。。。 20141010225855 : CCCC 执行中。。。 20141010225900 : AAAA 执行中。。。 20141010225900 : BBBB 执行中。。。 20141010225900 : CCCC 执行中。。。 20141010225905 : AAAA 执行中。。。 20141010225905 : BBBB 执行中。。。 20141010225905 : CCCC 执行中。。。 20141010225910 : AAAA 执行中。。。 20141010225910 : BBBB 执行中。。。 20141010225910 : CCCC 执行中。。。 20141010225915 : AAAA 执行中。。。 20141010225915 : BBBB 执行中。。。 20141010225915 : CCCC 执行中。。。 20141010225920 : AAAA 执行中。。。 20141010225920 : BBBB 执行中。。。 20141010225920 : CCCC 执行中。。。 20141010225925 : AAAA 执行中。。。 20141010225925 : BBBB 执行中。。。 20141010225925 : CCCC 执行中。。。 20141010225930 : AAAA 执行中。。。 20141010225930 : BBBB 执行中。。。 20141010225930 : CCCC 执行中。。。 20141010225935 : AAAA 执行中。。。 |