SpringMVC使用Cron表达式的定时器

本文介绍了如何在SpringMVC中集成Quartz定时器,通过Cron表达式实现定时任务。文章详细讲解了配置步骤,包括在springmvc.xml中添加必要的配置,扫描带有注解的文件,以及如何处理线程池和任务队列。此外,还提到了配置过程中可能遇到的问题,如缺少aopalliance.jar依赖,并提供了相关下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC的功能非常强大,集成了Quartz定时器的功能,可以通过Cron表达式和简单的注解就实现定时执行任务的功能。


网上看到不少例子,但是都不是很全。


闲话少说,首先要在springmvc.xml中添加下面几行:


     xmlns:task="http://www.springframework.org/schema/task" 
   

<!--下面两行要放在xsi:schemaLocation里面-->

http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.2.xsd


有了这两行代码,就可以在配置文件中添加定时器配置的XML代码。例子如下:


还是在springmvc.xml里面,这两行不用再解释,让springmvc知道去哪里扫描带注解的文件:

<!-- 注解扫描包 -->
<context:component-scan base-package="com.cmsv2.controller" />

<!-- 第二个注解包,这里面只有@Scheduled,所以不扫描controller -->
<context:component-scan base-package="com.cmsv2.schedule">  
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />  
</context:component-scan> 

<!-- 开启注解 -->
<mvc:annotation-driven/>



然后在下面加上:

<!-- 定时器配置 
    task:executor/@pool-size:可以指定执行线程池的初始大小、最大大小 
    task:executor/@queue-capacity:等待执行的任务队列的容量 
    task:executor/@rejection-policy:当等待队已满时的策略,分为丢弃、由任务执行器直接运行等方式 
   -->
    <task:scheduler id="scheduler" pool-size="10" />  
    <task:executor id="executor" keep-alive="3600" pool-size="100-200" 
    queue-capacity="500" rejection-policy="CALLER_RUNS" /> 
    <task:annotation-driven executor="executor" scheduler="scheduler" />

这几行从网上copy。


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

地址: http://mirrors.ibiblio.org/pub/mirrors/maven2/aopalliance/aopalliance/1.0/

下载后add to buildpath。

至此配置工作完成。


下面开始写代码:


<span style="font-family: Arial, Helvetica, sans-serif;">import java.util.Date;</span>

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component ;

@Component 
public class ScheduledTest2 {

	@Scheduled(cron = "0 0/1 * * * ?")
	public void runFunction(){
		System.out.println(new Date() + " package.controller scheduled test --> mahaha") ;
	}
	
}

然后就OK了!每分钟执行一次~~~ 


参考:http://bbs.youkuaiyun.com/topics/260068512

http://www.2cto.com/kf/201311/257405.html

http://blog.youkuaiyun.com/xiao_wgs69/article/details/11269391


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值