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 Boot,可以在`application.properties`或`application.yml`中配置Quartz,并通过`@EnableScheduling`注解启用定时任务支持。 8. **动态管理定时任务** Spring提供的`SchedulerFactoryBean`...
3. **Job和Trigger**:在Quartz中,Job是需要执行的任务,Trigger则是定义任务何时执行的规则。Spring可以通过实现`org.springframework.scheduling.quartz.JobDetailBean`和`org.springframework.scheduling.quartz...
在Spring中,通常会使用`org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean`来包装一个带有@Scheduled注解的方法。 5. **Cron表达式** CronTrigger允许使用Cron表达式来定义触发时间,如...
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
Spring对Quartz进行了集成,使其更易于在Spring应用程序中使用。Spring提供了`FactoryBean`类,如`SchedulerFactoryBean`,用于创建和管理Quartz的`Scheduler`实例。这使得我们可以利用Spring的依赖注入(DI)和管理...
而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring应用中使用Quartz变得更加方便。 Quartz的核心概念包括Job(作业)、Trigger(触发器)和Calendar(日历)。Job是实际要执行的任务,Trigger定义了Job...
通过以上步骤,你就可以成功地在Spring中整合Quartz并使用JDBC存储任务信息了。这种方式不仅方便了任务的管理和持久化,还支持集群部署,提高了系统的可靠性。在实际应用中,你可能还需要根据具体需求调整触发器类型...
在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...
在Spring中使用Quartz进行任务调度时,首先需要创建一个被调度的类。示例代码如下: ```java package com.kay.quartz; public class QuartzJob { public void work() { System.out.println("Quartz的任务调度!...
- Job:在Quartz中,任务被称为Job。我们可以通过实现`org.quartz.Job`接口或者继承`org.quartz.StatefulJob`(如果任务状态需要保留)来定义自己的Job。 ```java public class MyJob implements Job { @...
Spring 中的 Quartz 配置-Spring 定时器-...我们学习了 Quartz 的基本概念,了解了如何在 Spring 配置文件中定义 Quartz 的 bean,并了解了 Cron 表达式的使用。最后,我们总结了 Quartz 的优点,了解了它的强大功能。
Spring 和 Quartz2 是两个在 Java 开发中广泛使用的框架,它们在企业级应用中承担着重要的角色。Spring 是一个全面的、开源的应用框架,而 Quartz2 是一个强大的、开源的作业调度库,常用于实现定时任务。下面我们将...
当 Spring 与 Quartz 结合使用时,Spring 可以通过其强大的容器管理和配置能力,将 Quartz 集成到应用程序中。例如,Spring 提供了 `org.springframework.scheduling.quartz` 包,该包包含了一些用于配置 Quartz 的...
在本示例中,我们将探讨如何在Spring应用中配置和使用Quartz,以及通过示例代码来理解其工作原理。 首先,我们需要在项目中引入Quartz的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...
在Quartz中,Job是执行的任务,Trigger是触发任务的时间规则。Spring支持使用`@Component`注解定义Job类,然后通过`@DisallowConcurrentExecution`确保每次只有一个实例在执行。Trigger则是通过`@Scheduled`注解在...
Spring 和 Quartz 是两个在 Java 开发中非常重要的框架。Spring 是一个全面的后端开发框架,而 Quartz 是一个强大的任务调度库。将它们结合使用,我们可以实现基于 Spring 的应用程序中的定时任务管理。以下是对 ...
在企业级应用中,定时任务的管理是必不可少的一部分,Spring框架提供了与Quartz的集成,使得我们可以方便地创建和管理定时任务。Quartz是一款强大的、开放源代码的作业调度框架,它可以灵活地安排和执行任务。而当...
对于开发,重点关注 examples 文件夹中的示例,这将帮助理解如何在实际项目中使用 Quartz。 **1.3 主要概念** - **Job**:这是执行任务的实体,需要实现 `void execute(JobExecutionContext context)` 方法来编写...
本项目来源与网络,本人对项目...直接通过mvn 倒入项目,在Spring-quartz-demo\src\main\webapp\sql 有sql 建立数据库,表 启动tomcat 直接访问http://localhost:8080/Spring-quartz-demo/task/taskList.htm 就可以使用
Spring 中 Quartz 调度器的使用是指在 Spring 框架中使用 Quartz 调度器来实现任务调度。Quartz 是一个功能强大且灵活的开源任务调度器,能够满足复杂的任务调度需求。在 Spring 中使用 Quartz 调度器可以将任务调度...