- 浏览: 378708 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (116)
- 生活 (1)
- 工作 (56)
- 健康 (0)
- 感情 (0)
- IT (45)
- 数据库 (11)
- Spring处理lob数据 (0)
- org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator needs to work on [oracle.jdbc.OracleConnection] (1)
- not on [com.mysql.jdbc.Connection]: specify a corresponding NativeJdbcExtractor; nested exception is java.lang.ClassCastException: com.mysql.jdbc.Connection (1)
- org.hibernate.DuplicateMappingException (1)
- js (3)
- Spring (2)
- PropertyPlaceholderConfigurer (1)
- Spring事务 (2)
- PROPAGATION_REQUIRED (1)
- PROPAGATION_SUPPORTS (1)
- PROPAGATION_MANDATORY (1)
- PROPAGATION_REQUIRES_NEW (1)
- setTimeout() (0)
- fn函数 (1)
- jstl标签 (1)
- 锚点 (1)
- 工作 urlrewrite 静态化 (1)
- 分享到微博 (1)
- hibernate (1)
- id to load is required for loading (1)
最新评论
-
wangyudong:
用Holer,只需要配置一个Access Key就搞定了htt ...
webservice发布以后在本地能够访问,但是在远程访问不了 -
梦幻无极:
[flash=200,200][url][img][list] ...
mysql Error Code : 1060 Duplicate column name 'ID' -
wqxdoc_pxiang9:
工程用什么软件
plc学习笔记 -
jiangxiankun:
请问一下这个需要什么jar包吗
用JAVA代码访问一段URL地址是否可用怎么写? -
361010911:
好乱!- -
java轮询程序的实现
Spring Quartz可以通过两种方式来调度程序:一是使用Spring提供的 MethodInvokingJobDetailFactoryBean 代理类,Quartz通过该代理类直接调度任务类的某个函数;二是任务类继承并实现Quartz接口,Quartz通过该接口进行调度。
先说说这个MethodInvokingJobDetailFactoryBean 代理类吧。由Quartz直接调度任务类的某个接口,那么,业务类是不必进行任何修改的。我们的业务类大概如下:
public class LoopVZZJZ { @SuppressWarnings( { "unchecked", "finally" }) public void loopServiceExpired() { //业务逻辑代码 } }
配置如下:
第一步,在Spring配置文件中增加本业务类
<bean name="loopVZZJZManage" autowire="byName" class="com.sitechasia.xinnet.agent.serv.service.impl.LoopVZZJZ"></bean>
第二步,定义任务。在Spring配置文件中配置代理类MethodInvokingJobDetailFactoryBean,定义任务的详细信息。
<!-- 服务到期轮询 --> <!--定义定时执行testQuarz 这个bean中的sayHello()方法--> <bean id="loopServiceExpired_methodVH" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="loopVZZJZManage" /> </property> <property name="targetMethod"> <value>loopServiceExpired</value> </property> </bean>
这个配置告诉Spring,我们的任务是执行id为loopVZZJZManage的bean中的loopServiceExpired方法。其中参数concurrent告诉Spring,不要并发运行这个任务。
第三步,配置一个触发器。在Spring配置文件中配置触发器类CronTriggerBean 。
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm--> <bean id="loopServiceExpiredTimeVH" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="loopServiceExpired_methodVH" /> </property> <property name="cronExpression"> <!-- 关键在配置此表达式 --> <value>0 0 1 1 * ? </value><!-- 从左到右分别是:秒(0-59) 分(0-59) 时(0-23) 日期(1-31) 月份(1-12) 星期(1-7) --> </property> </bean>
触发器将告诉Quartz两件事:在何时触发任务、触发哪个任务。其中属性参数cronExpression为 调度时间,格式和unix上的crontab类似,具体见下表1。“0 0 1 1 * ?”表示每月1日凌晨1点运行。其中问号表示忽略该位置(星期)上的值。属性参数jobDetail指向具体的任务bean:loopServiceExpired_methodVH。如果你有多个任务,每个任务的触发时间都不一样,则你可以在此配置多个不同的触发器。
再说说第二种方式吧:
第一步,LoopVZZJZ是要进行小小的修改
public class LoopVZZJZ implements org.quartz.Job { //继承quartz 的job接口 { //实现job接口的execute函数,在其中简单调用perform()函数就可以了。 public void execute(org.quartz.JobExecutionContext context){ //执行报表统计入口函数 loopServiceExpired() } //其它的保持不变。 @SuppressWarnings( { "unchecked", "finally" }) public void loopServiceExpired() { //业务逻辑代码 } }
第二步,定义任务。在Spring配置文件中配置如下任务的详细信息。
<bean name=" loopServiceExpired" class= "org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sitechasia.xinnet.agent.serv.service.impl.LoopVZZJZ" /> </bean>
此配置告诉Quartz,我们的任务类的名字为LoopVZZJZ。在定时触发时,Quartz会利用该类名来创建任务的实例,并执行该实例的execute方法。
第三、第四步与第一种的调度方式相应的步骤一样。
spring的配置文件如下:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 我们的任务 --> <bean name="loopServiceExpired" class= "org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sitechasia.xinnet.agent.serv.service.impl.LoopVZZJZ" /> </bean> <!-- 触发器 --> <bean id="cronTrigger" class= "org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 指向我们的任务 --> <property name="jobDetail" ref="loopServiceExpired" /> <!-- 每月1日凌晨1点运行 --> <property name="cronExpression" value="0 0 1 1 * ?" /> </bean> <!-- 调度器 --> <bean class= "org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list><!-- 触发器列表--> <ref bean="cronTrigger" /> </list> </property> </bean> </beans>
参考文章:http://yangxianjiangg.iteye.com/blog/876111
发表评论
-
id to load is required for loading
2013-05-07 16:47 1209今天遇到一个bug:id to load is requir ... -
mysql随机获取记录
2012-12-11 12:42 1155MYSQL的随机抽取实现方法。举个例子,要从tablename ... -
分享到微博js
2012-08-02 14:35 9971分享到微博js 1.分享到微博代码: var t ... -
js 定位
2012-02-02 11:31 3054前两天开发一个功能,显示所有记录之后,对某一条记录操作之后, ... -
jstl标签 函数
2012-02-02 11:02 1268jstl标签,fn函数 函数:fn:contains(stri ... -
java.lang.IllegalArgumentException: Failed to parse a valid name/value pair from
2011-11-23 16:48 2377昨天231被封了,所以只能换203的测试库,可是一启动就报错j ... -
JS中setTimeout()的用法详解
2011-11-07 17:20 0setTimeout( ) setTimeout( ) 是 ... -
Spring中的四种声明式事务的配置
2011-10-18 14:15 985Spring中的四种声明式事务的配置Spring容器中有两种 ... -
事务的传播行为和隔离级别
2011-10-18 11:13 2666一。Spring在TransactionDefi ... -
Spring 利用PropertyPlaceholderConfigurer占位符
2011-10-18 10:54 34371.Spring的框架中,org.springframew ... -
js动态添加删除表格
2011-10-11 15:25 1539//动态添加行 function addRowMx( ... -
Duplicate class/entity mapping com.sitechasia.xinnet.admin.checkip.model.AdmUser
2011-09-19 14:56 2217今天还算有点时间,就同步了一下我工作空间和cvs服务器上的代码 ... -
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape
2011-09-19 10:32 23746java编码解码 前两天修改了个功能,登陆的时候密码为‘% ... -
servlet页面跳转
2011-09-15 17:26 7908昨天晚上在公 ... -
ContentType
2011-08-25 10:14 1054[size=medium]ContentType 属性指定响 ... -
简单的下载例子
2011-08-25 10:07 1328前两天看代码,有一个下载的例子,我觉得写得挺全面 ... -
java操作Excel(Jakarta_POI)
2011-08-23 14:15 1252一。 Jakarta POI 是一套用于访问微软 ... -
POI类库之工作表中文名乱码问题
2011-08-23 13:52 2042POI类库是JAVA平台下操作EXCEL的类库,功 ... -
cvs.exe [checkout aborted]: connect to scm1.ceopen.cn:2401 failed: 套接字操作尝试一个无法连接
2011-08-12 13:29 1925昨天想在cvs服务器上更新代码,但是一点更新之 ... -
Spring处理lob数据
2011-08-12 11:27 1637在ssh项目中有一个需要上传、下载的功能,并且将图片 ...
相关推荐
Spring Quartz 定时器示例(Web工程版),欢迎下载。
Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...
Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...
Spring Quartz定时器是一种在Java应用中实现定时任务的流行框架,它允许开发者精确地调度任务执行。本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让...
本文将详细介绍如何在Spring项目中集成Quartz定时器,并通过一个简单的示例来进行演示。 #### 一、环境准备 为了能够顺利地运行示例代码,我们需要准备以下必要的依赖库: - `jta-1.1.jar`:用于事务管理。 - `...
Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义定时任务。这个示例提供了在Spring框架中集成Quartz的详细步骤,适合Java工程的实现。下面将详细介绍Spring与Quartz结合使用的相关知识点...
这篇博客“Spring Quartz 定时器”很可能是探讨如何将Quartz集成到Spring应用中,以便利用其强大的定时任务功能。 首先,我们来看一下Spring与Quartz的结合。Spring通过`org.springframework.scheduling.quartz`包...
在Spring中集成Quartz,首先需要在项目的类路径下添加这三个jar包,然后通过Spring的配置文件来声明Quartz的相关bean。你可以定义`SchedulerFactoryBean`来创建调度器,`JobDetailBean`来定义作业,以及`...
然后,配置Spring的XML文件来设置定时器。在配置中,你需要定义`JobDetailBean`来指定任务类,并通过`CronTriggerBean`来设定调度规则。例如: ```xml <bean name="userTimelineQuartz" class="org.springframework...
Spring Quartz 是一个集成Quartz定时任务框架的Spring模块,它为开发者提供了在Spring环境中便捷配置和管理定时任务的能力。Quartz作为一个强大且功能丰富的任务调度框架,能够灵活地定义任务的执行时间表,并且可以...
本篇文章将详细讲解两种在Spring MVC框架中实现定时任务的方法:Spring MVC自带的定时器以及Quartz与Spring的集成。 首先,我们来看看Spring MVC自带的定时任务。Spring MVC作为Spring框架的一个模块,主要处理HTTP...
本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...
在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...
首先,要使用Spring的Quartz定时器,你需要确保引入了以下核心的jar包: 1. `quartz.jar`:这是Quartz的核心库,包含了Quartz的调度器、作业、触发器等核心组件。 2. `spring-context-support.jar`:Spring框架提供...
本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...
作为一个专业的IT行业大师,我很高兴为你解析Quartz定时器的核心概念、功能以及如何通过源码学习。 Quartz定时器允许开发者创建、调度和管理任务,这些任务可以是简单的函数调用或者复杂的业务流程。它支持多种调度...
《Spring与Quartz定时器深度解析》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。其中,Spring对任务调度的支持是其一大亮点,尤其与Quartz的集成,使得开发者能够方便地实现定时任务。Quartz是一...
在Spring应用中添加Quartz支持,你需要在`pom.xml`或`build.gradle`文件中引入Quartz的依赖,比如`quartz-all.jar`。接着,在Spring的配置文件(如`applicationContext.xml`)中,定义一个`SchedulerFactoryBean`来...
本篇将深入探讨如何在Spring中启动和停止Quartz定时器。 首先,我们需要理解Spring和Quartz的基本概念。Spring是一个强大的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。而...