spring定时器用Annotation实现

通过 注解 来调度任务
1、AnnotationQuartz类:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class AnnotationQuartz {
  @Scheduled(cron="0,10,20,30,40,50 * * * * ?")   //需要注意@Scheduled这个注解,它可配置多个属性:cron\fixedDelay\fixedRate
  public void test()
  {
    System.out.println("0.0");
  }
}

2、
spring的ApplicationContext.xml中的配置:
只需要加上
<!--  定时器开关  开始-->
    <task:annotation-driven/>
<!--  定时器开关  结束-->


3、(如果是web应用,那么需要再web.xml中加入)
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

注意 :(ApplicationContext.xml)
a)、需要在xmlns里面加入:
xmlns:task="http://www.springframework.org/schema/task" 

b)、在xsi:schemaLocation中加入
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd(别忘了最后的引号)


cron表达式
一个cron表达式有到少6个(也可能是7个)由空格分隔的时间元素.从左到右,这些元素的定义如下: 
              1.秒(0-59) 
              2.分钟(0-59) 
              3.小时(0-23) 
              4.月份中的是期(1-31) 
              5.月份(1-12或SUN-DEC) 
              6.星期中的日期(1-7或SUN-SAT) 
              7.年份(1970-2099)  
                 例子: 
                  0 0 10,14,16 * * ? 每天上午10点,下午2点和下午4点 
                  0 0,15,30,45 * 1-10 * ? 每月前10天每隔15分钟 
                  30 0 0 1 1 ? 2012 在2012年1月1日午夜过30秒时 
                  0 0 8-5 ? * MON-FRI 每个工作日的工作时间 
              - 区间 
              * 通配符 

你可能感兴趣的:(annotation)