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

    spring计划任务,springMvc计划任务,Spring@Scheduled,spring定时任务

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    蕃薯耀 2015年12月28日, PM 05:37:54 星期一

    http://fanshuyao.iteye.com/

    一、计划任务实现类

    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;

     记得set get方法

    public PushRecordService getPushRecordService() {
    		return pushRecordService;
    	}
    
    	public void setPushRecordService(PushRecordService pushRecordService) {
    		this.pushRecordService = pushRecordService;
    	}

     七,注意

    同时还要添加一个aopaliaance.jar,否则会报错:noClassDefoundError:org/aopalliance/aop/Advice

    地址:http://maven.ibiblio.org/maven2/aopalliance/aopalliance/1.0/

     

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    蕃薯耀 2015年12月28日, PM 05:37:54 星期一

    http://fanshuyao.iteye.com/

  • 相关阅读:
    科研道路上培养的7种能力
    (OK) network diagnose tools
    linux-bridge-ping-high-latency-ebtables.txt
    houshoul
    Android x86 Virtual box with Internet and connection to adb?
    linux內核調試kmsg,dmesg
    Android Logging System
    Linux 日志级别(loglevel)详解
    Linux之绝处逢生------SysRq
    /proc/sysrq-trigger详解
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/6227152.html
Copyright © 2011-2022 走看看