`
wuyaweiwude
  • 浏览: 122004 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类

Spring中Quartz的使用

阅读更多
1.环境 Spring 3.1,Quartz 1.6.0(经测试Spring不支持最新的Quartz 2.x)
2.spring提供了创建调度任务的对应的Bean,首先加载调度任务的配置文件,web.xml中指定需加载的配置文件路径(例中Quartz的bean配置信息与其它bean不在同一个配置文件中):
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/beans.xml /WEB-INF/Quartz.xml
		</param-value>
	</context-param>

注:通过监听器启动spring容器代码段:
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>

调度配置文件Quartz.xml内容(以定时发送邮件操作为例):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	
	<!-- 包含调度执行的方法 -->
	<bean id="sendMailJob"
		class="com.my.mailsend.quartz.SendMailJob" />
	
	<!-- 调度任务详情 -->
	<bean id="sendMailJobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 指定任务执行时调用的方法及所在类 -->
		<property name="targetObject">
			<ref bean="sendMailJob"></ref>
		</property>
		<property name="targetMethod">
			<value>doJob</value>
		</property>
	</bean>
	
	<!-- 触发器任务:指定调度任务、执行时间及频率 -->
	<bean id="sendMailTrigger"
		class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="sendMailJobDetail"></ref>
		</property>
		<!-- 在属性文件中配置,格式为:email.send.cronExpression = 0 03/30 * * * ? -->
		<property name="cronExpression">
			<value>${email.send.cronExpression}</value>
		</property>
	</bean>
	
	<!-- 调度任务列表:指定触发器任务列表 -->
	<bean id="quartz"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="sendMailTrigger"></ref>
			</list>
		</property>
	</bean>

</beans>

其中 SendMailJob 中的doJob方法代码如下(仅仅生成bo实例,执行具体的业务方法):
    // 根据邮件发送任务列表进行邮件发送的任务调度方法
    public void doJob() {
	
	WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
	MailSendBo bo = (MailSendBo) wac.getBean("mailSendBo");	
	
	bo.doSendMail();
    }
分享到:
评论

相关推荐

    关于spring中quartz的配置

    如果使用的是Spring Boot,可以在`application.properties`或`application.yml`中配置Quartz,并通过`@EnableScheduling`注解启用定时任务支持。 8. **动态管理定时任务** Spring提供的`SchedulerFactoryBean`...

    spring+quartz使用jar包

    3. **Job和Trigger**:在Quartz中,Job是需要执行的任务,Trigger则是定义任务何时执行的规则。Spring可以通过实现`org.springframework.scheduling.quartz.JobDetailBean`和`org.springframework.scheduling.quartz...

    spring的quartz使用实例

    在Spring中,通常会使用`org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean`来包装一个带有@Scheduled注解的方法。 5. **Cron表达式** CronTrigger允许使用Cron表达式来定义触发时间,如...

    spring+quartz demo

    Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...

    SpringQuartz的使用文档

    Spring对Quartz进行了集成,使其更易于在Spring应用程序中使用。Spring提供了`FactoryBean`类,如`SchedulerFactoryBean`,用于创建和管理Quartz的`Scheduler`实例。这使得我们可以利用Spring的依赖注入(DI)和管理...

    quartz和spring-quartz

    而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring应用中使用Quartz变得更加方便。 Quartz的核心概念包括Job(作业)、Trigger(触发器)和Calendar(日历)。Job是实际要执行的任务,Trigger定义了Job...

    spring整合quartz使用jdbc存储

    通过以上步骤,你就可以成功地在Spring中整合Quartz并使用JDBC存储任务信息了。这种方式不仅方便了任务的管理和持久化,还支持集群部署,提高了系统的可靠性。在实际应用中,你可能还需要根据具体需求调整触发器类型...

    Java_Spring与Quartz的整合

    在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...

    Spring中Quartz的配置

    在Spring中使用Quartz进行任务调度时,首先需要创建一个被调度的类。示例代码如下: ```java package com.kay.quartz; public class QuartzJob { public void work() { System.out.println("Quartz的任务调度!...

    Spring_QuartZDemo

    - Job:在Quartz中,任务被称为Job。我们可以通过实现`org.quartz.Job`接口或者继承`org.quartz.StatefulJob`(如果任务状态需要保留)来定义自己的Job。 ```java public class MyJob implements Job { @...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    Spring 中的 Quartz 配置-Spring 定时器-...我们学习了 Quartz 的基本概念,了解了如何在 Spring 配置文件中定义 Quartz 的 bean,并了解了 Cron 表达式的使用。最后,我们总结了 Quartz 的优点,了解了它的强大功能。

    Spring+Quartz2

    Spring 和 Quartz2 是两个在 Java 开发中广泛使用的框架,它们在企业级应用中承担着重要的角色。Spring 是一个全面的、开源的应用框架,而 Quartz2 是一个强大的、开源的作业调度库,常用于实现定时任务。下面我们将...

    Spring+quartz相关jar包.rar

    当 Spring 与 Quartz 结合使用时,Spring 可以通过其强大的容器管理和配置能力,将 Quartz 集成到应用程序中。例如,Spring 提供了 `org.springframework.scheduling.quartz` 包,该包包含了一些用于配置 Quartz 的...

    Spring中Quartz调度器的使用 示例代码

    在本示例中,我们将探讨如何在Spring应用中配置和使用Quartz,以及通过示例代码来理解其工作原理。 首先,我们需要在项目中引入Quartz的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    Spring+Quartz example

    在Quartz中,Job是执行的任务,Trigger是触发任务的时间规则。Spring支持使用`@Component`注解定义Job类,然后通过`@DisallowConcurrentExecution`确保每次只有一个实例在执行。Trigger则是通过`@Scheduled`注解在...

    spring-quartz定时设置详细说明

    Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...

    spring 集成quartz 用数据库实现quartz的集群

    在企业级应用中,定时任务的管理是必不可少的一部分,Spring框架提供了与Quartz的集成,使得我们可以方便地创建和管理定时任务。Quartz是一款强大的、开放源代码的作业调度框架,它可以灵活地安排和执行任务。而当...

    spring整合quartz文档

    对于开发,重点关注 examples 文件夹中的示例,这将帮助理解如何在实际项目中使用 Quartz。 **1.3 主要概念** - **Job**:这是执行任务的实体,需要实现 `void execute(JobExecutionContext context)` 方法来编写...

    Spring-quartz-demo Spring4.1.6 + quartz2.2.1

    本项目来源与网络,本人对项目...直接通过mvn 倒入项目,在Spring-quartz-demo\src\main\webapp\sql 有sql 建立数据库,表 启动tomcat 直接访问http://localhost:8080/Spring-quartz-demo/task/taskList.htm 就可以使用

    Spring中Quartz调度器的使用

    Spring 中 Quartz 调度器的使用是指在 Spring 框架中使用 Quartz 调度器来实现任务调度。Quartz 是一个功能强大且灵活的开源任务调度器,能够满足复杂的任务调度需求。在 Spring 中使用 Quartz 调度器可以将任务调度...

Global site tag (gtag.js) - Google Analytics