`
kobe学java
  • 浏览: 262341 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

spring结合quartz的定时的2种方式

 
阅读更多

1、 Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  5.     <!--   
  6.     方法一:  
  7.     Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,  
  8.     使用此方法使开发人员对Quartz完全透明,需要实现定时任务的方法只是一个普通方法。  
  9.      -->  
  10.     <!--1、 配置文件中添加业务类,该类为调用的工作类 -->  
  11.     <bean id="businessWork" class="com.morningstar.quartz.BusinessWork" />    
  12.       
  13.     <!-- 2、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->   
  14.     <bean id="businessTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">    
  15.         <!-- 调用的类 -->          
  16.         <property name="targetObject" ref="businessWork"/>  
  17.          <!-- 调用类中的方法 -->  
  18.         <property name="targetMethod" value="generateReport"/>   
  19.         <!-- false,证明不执行并发任务 -->  
  20.         <property name="concurrent" value="false"/>     
  21.     </bean>   
  22.     <!-- 3、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器,下面是每隔5秒调用一个方法配置-->  
  23.     <!-- cron表达式 -->  
  24.     <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  25.         <property name="jobDetail" ref="businessTask"/>  
  26.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  27.     </bean>  
  28.   
  29.     <!-- 4、配置调度器 ,容器启动就会执行调度程序  -->  
  30.      <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->    
  31.      <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->    
  32.     <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  33.         <property name="triggers">  
  34.             <list>  
  35.                 <ref bean="cronTrigger"/>  
  36.             </list>  
  37.         </property>  
  38.     </bean>  
  39. </beans>  

 2、借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能, 继承 Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现 executeInternal方法,executeInternal方法中调用业务类。

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">  
  5.     <!--   
  6.     方法二:  
  7.     借助于Spring的org.springframework.scheduling.quartz.JobDetailBean的类功能,  
  8.     继承 Spring封装Quartz的org.springframework.scheduling.quartz.QuartzJobBean类,实现 executeInternal方法,  
  9.     executeInternal方法中调用业务类  
  10.      -->  
  11.     <!-- 1、定义任务,在spring文件中配置代理类 ,定义调用对象和调用对象的方法-->   
  12.     <bean id="businessTask" class="org.springframework.scheduling.quartz.JobDetailBean">    
  13.         <!-- 调用的类 -->          
  14.         <property name="jobClass" value="com.morningstar.quartz.BusinessWork"/>  
  15.         <!-- 主要是为了在定时任务需要使用到Bean,通过Spring给注入进来,如果不写明,就会报java.lang.NullPointerException错误 -->  
  16.         <!--    
  17.         <property name="jobDataAsMap">  
  18.             <map>  
  19.                 <entry key="someService">  
  20.                     <ref bean="someService" />  
  21.                 </entry>  
  22.             </map>  
  23.         </property>  
  24.         -->  
  25.     </bean>   
  26.       
  27.     <!-- 2、配置触发器,定义触发时间,可以根据不同的时间对同一个任务定义多个触发器-->  
  28.     <!-- cron表达式 -->  
  29.     <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  30.         <property name="jobDetail" ref="businessTask"/>  
  31.         <property name="cronExpression" value="10,15,20,25,30,35,40,45,50,55 * * * * ?"/>  
  32.     </bean>  
  33.   
  34.     <!-- 3、配置调度器 ,容器启动就会执行调度程序  -->  
  35.      <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->    
  36.      <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序            -->    
  37.     <bean id="schdulerFactory" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  38.         <property name="triggers">  
  39.             <list>  
  40.                 <ref bean="cronTrigger"/>  
  41.             </list>  
  42.         </property>  
  43.     </bean>  
  44. </beans>  

 

分享到:
评论

相关推荐

    spring+quartz定时小例子

    在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和文档,帮助开发者理解并实践这一整合过程。 1. **Spring 配置**: ...

    spring注解Quartz定时执行功能

    下面我们将深入探讨如何利用Spring注解实现Quartz定时执行功能。 首先,我们需要引入Quartz和Spring的相关依赖。在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.quartz-scheduler &lt;artifactId&gt;...

    spring-quartz定时设置详细说明

    将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 "spring-quartz 定时设置详细说明" 的详细解释。 一、Quartz 简介 Quartz 是一个开源的作业调度框架,可以用来创建、调度和执行...

    spring+quartz动态定时任务创建 +mybatis

    当结合Quartz,一个强大的任务调度库,我们可以实现动态的定时任务创建,这在业务逻辑中有着广泛的应用,如数据同步、定时报表生成等。 **Spring框架** Spring框架是Java开发者必备的工具之一。它提供了一个统一的...

    springboot整合quartz定时任务yml文件配置方式

    在Spring Boot应用中整合Quartz定时任务是一种常见的需求,它可以帮助我们执行周期性的后台任务,如数据同步、报表生成等。Spring Boot与Quartz的结合提供了便捷的配置方式,特别是通过YAML(YAML Ain't Markup ...

    spring quartz定时任务demo

    本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,Quartz是一个开源的作业调度框架,支持复杂的调度策略,可以创建、调度和执行重复或一次性...

    Spring+Quartz定时任务学习文档+实例+jar包

    2. 配置Quartz:在Spring的配置文件中,我们需要定义一个`SchedulerFactoryBean`,这是Quartz调度器的Spring Bean,可以设置相关属性,如线程池大小、是否自动启动等。 ```xml &lt;bean id="scheduler" class="org....

    spring+quartz定时集群支持

    本篇将深入探讨"Spring+Quartz定时集群支持"这一主题。 首先,Spring是Java领域广泛使用的轻量级框架,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及对各种企业服务的支持。Spring整合Quartz库,使得...

    quartz整合springbatch动态集群定时实现mysql参考

    在这个项目中,结合Quartz和Spring Batch,开发者可能已经创建了一个系统,可以在集群环境中自动调度和执行Spring Batch作业。MySQL被用作Quartz的JobStore和Spring Batch的持久化存储,存储作业状态、调度信息以及...

    Spring quartz定时调度jar包

    总之,Spring Quartz定时调度jar包为开发者提供了强大的定时任务管理能力,无论是简单的一次性任务还是复杂的周期性任务,都可以轻松处理。通过Spring的管理,任务的创建和维护变得更加灵活和易于测试。在实际开发中...

    定时器的配置文件(两种方式:springmvc自带定时,Quartz与spring结合的定时)

    接下来,我们讨论如何在Spring MVC项目中集成Quartz定时框架。Quartz是一个强大的、开源的作业调度库,能够精确地触发几千个并发的作业。 1. **引入依赖**: 在你的`pom.xml`或`build.gradle`文件中添加Quartz和...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...

    Spring Quartz定时任务 jar包

    Spring Quartz定时任务jar包是Java开发中用于实现定时任务调度的一种解决方案。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行作业,而Spring框架则为Quartz提供了良好的整合,使得在Spring应用中配置...

    Spring+quartz定时.zip

    本文将深入探讨如何将Spring MVC与Quartz结合,以及如何利用数据库来动态管理定时任务。 首先,Spring MVC是Spring框架的一部分,主要用于构建Web应用程序的Model-View-Controller架构。它提供了处理HTTP请求、数据...

    Spring+Quartz定时调度

    在Java世界中,实现定时任务调度是非常常见的需求,Spring框架结合Quartz库提供了一种高效且灵活的解决方案。本文将深入探讨Spring与Quartz的整合,以及如何利用它们来创建和管理定时任务。 ### 一、Spring与Quartz...

    spring之定时任务实现(spring-task和quartz等不同方式)

    在IT领域,尤其是在Java开发中,定时任务是一个非常常见的需求,用于执行周期性的任务,比如数据备份、报表生成、...结合提供的文档和源码工程,读者可以深入理解并实践这两种定时任务的实现方式,提升自己的技能水平。

    spring整合quartz定时任务

    Spring整合Quartz定时任务是企业级应用中常见的一种任务调度技术,它允许开发者在应用程序中设置定时执行的任务,比如数据同步、报表生成等。Quartz是一个功能强大的开源作业调度框架,而Spring则是一个广泛使用的...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    Spring框架结合Quartz库,提供了一种强大而灵活的方式来管理这些定时任务。本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 ...

    定时框架spring+quartz

    "定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...

Global site tag (gtag.js) - Google Analytics