zoukankan      html  css  js  c++  java
  • (转)spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务

    一、计划任务实现类

    1、用@Component注解标识计划任务类,这样spring可以自动扫描

    2、在方法中使用注解标识要执行的方法:@Scheduled(cron="*/30 * * * * *")

    3、周期可以使用cron,或者fixedRate,fixedRate=1000*30表示30秒执行一次,cron请自行百度或看下面的代码的说明

    @Component  
    public class SpringTask {  
      
        /** 
         * cron表达式:* * * * * *(共6位,使用空格隔开,具体如下)  
         * cron表达式:*(秒0-59) *(分钟0-59) *(小时0-23) *(日期1-31) *(月份1-12或是JAN-DEC) *(星期1-7或是SUN-SAT)  
         * 注意: 30 * * * * * 表示每分钟的第30秒执行,而(*斜杠30)表示每30秒执行 
         *  
         * */  
        @Scheduled(cron="*/30 * * * * *")  
        public void firstTask(){  
            System.out.println("==============it is first task!时间:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));  
        }  
    }  

    二、需要在spring.xml配置文件中加入命名空间(xmlns:task)

    本项目采用了spring4.1,所以用的是4.1

    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:aop="http://www.springframework.org/schema/aop"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:task="http://www.springframework.org/schema/task"  
        xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd  
            http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd  
            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-4.1.xsd">  

    三、增加包的扫描,一般在spring.xml文件都会有

    主要是这个:<context:component-scan base-package="com.spring.*"></context:component-scan>

    <context:component-scan base-package="com.spring.*">  
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>  
        </context:component-scan>  

    四、在spring.xml文件中配置计划任务

    <task:annotation-driven scheduler="taskScheduler" mode="proxy"/>    
    <task:scheduler id="taskScheduler" pool-size="10"/>    
     

    也可以简单点配置,如下:

    <task:annotation-driven />    

     五、然后启动web项目,就会看到每30秒就打印信息出来。

    六、如果需要用到service类,可以注入。

    @Autowired  
    private PushRecordService pushRecordService;  

    转自:http://fanshuyao.iteye.com/blog/2267243

  • 相关阅读:
    最长上升子序列问题
    多重部分和问题 (dp)
    01背包问题的延伸即变形 (dp)
    完全背包问题入门 (dp)
    最长公共子序列问题
    01背包入门 dp
    POJ 30253 Fence Repair (二叉树+优先队列)
    POJ 3069 Saruman's Army (模拟)
    [leetcode-357-Count Numbers with Unique Digits]
    [leetcode-474-Ones and Zeroes]
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/9428275.html
Copyright © 2011-2022 走看看