引用
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz.
被调度的类:
package timer.quartz;
import java.util.Date;
import org.apache.log4j.Logger;
/**
* @Title: QuartzJob.java
* @Package timer.quartz
* @Description: TODO
* @author ZHAOXQ@EHOO.CN
* @date 2011-8-3 下午12:05:02
* @version V1.0
*/
public class QuartzJob {
private Logger logger = Logger.getLogger(this.getClass().getName());
public void work() {
logger.info("******开始进行任务调度******");
//业务逻辑
System.out.println("当前时间: " + new Date());
}
}
配置文件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="quartzJob" class="timer.quartz.QuartzJob"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每隔10秒执行一次 -->
<value>0/10 * * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
</beans>
测试程序:
package main;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Title: QuartzJobMain.java
* @Package main
* @Description: TODO
* @author ZHAOXQ@EHOO.CN
* @date 2011-8-3 下午12:03:54
* @version V1.0
*/
public class QuartzJobMain {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("quartz.xml");
//如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
// context.getBean("startQuertz");
}
}
配置文件web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>webapps</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/quartz.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
所需jar包:
分享到:
相关推荐
以下将详细介绍如何在Spring中配置Quartz以及相关知识点。 1. **引入依赖** 在开始配置之前,首先需要在项目的`pom.xml`或`build.gradle`文件中引入Quartz和Spring相关的依赖库。对于Maven项目,可以添加如下依赖...
Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...
### Spring中Quartz的配置详解 #### 一、前言 Spring框架因其强大的功能和灵活性在企业级应用开发中占据了一席之地。其中,对于定时任务的支持,Spring结合了Quartz这一优秀的开源任务调度框架,提供了更为灵活和...
spring-quartz的标准配置文件
在Spring中集成Quartz,主要涉及到以下几个关键知识点: 1. **Quartz的配置**:首先,你需要在项目的类路径下添加Quartz库的依赖,这通常通过Maven或Gradle的依赖管理来完成。在`lib`目录下可能包含了Quartz的JAR...
Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...
本文将深入探讨如何在Spring中配置多个Quartz定时任务,并结合`quartz.properties`文件进行详细讲解。 首先,我们需要理解Quartz的基本概念。Quartz是开源的作业调度框架,允许应用程序在特定时间执行任务。它支持...
在本文中,我们将讨论如何使用 Spring Quartz 实现动态配置时间,并提供了详细的实现步骤和实践经验。 动态配置时间的目的 在实际应用中,任务的执行时间往往需要根据业务需求进行动态调整,以满足不同的需求场景...
在Spring中,我们可以通过`@EnableScheduling`注解开启定时任务支持,然后通过`@Scheduled`注解在方法上定义定时规则。但这仅限于单机环境,若要实现分布式定时任务,我们需要引入Quartz。 集成Quartz的第一步是...
本文将深入探讨如何在Spring环境中集成Quartz以实现集群配置,以便于在分布式环境中进行高效的任务调度。 首先,理解Spring集成Quartz的核心在于Spring的Job接口和Quartz的Scheduler。Spring提供了`org.spring...
Quartz和Spring-Quartz是两个在Java世界...“spring-quartz-demo”可能是一个完整的示例项目,你可以通过运行它来深入理解Quartz在Spring中的应用。通过研究这些资源,你可以更全面地掌握Quartz和Spring-Quartz的用法。
以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及涉及的Spring Cloud Alibaba、Dubbo和Nacos的相关知识。 首先,我们需要在`pom.xml`中引入相关的依赖。Spring Boot的`spring-boot-...
2. 配置 Quartz:在 Spring 的配置文件(如 `application.properties` 或 `application.yml`)中,可以设置 Quartz 的基本属性,如线程池大小、作业存储策略等。 ```properties # application.properties 示例 ...
在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...
2. 配置Scheduler:在Spring的配置文件中,使用`SchedulerFactoryBean`来初始化和配置Quartz Scheduler。可以设置如数据库存储、线程池大小等参数。 3. 创建Job类:定义一个实现了`org.quartz.Job`接口的类,这是...
在Spring的配置文件中,我们首先需要定义一个`SchedulerFactoryBean`,它是Spring与Quartz的桥梁。例如: ```xml <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> ...
要在Spring中配置Quartz,你需要完成以下步骤: 1. **引入依赖**:在项目中添加上述两个jar包,并确保它们已被正确地引入到类路径中。 2. **配置Quartz**:在Spring的配置文件(如`applicationContext.xml`)中,...
通过以上步骤,你就成功地在Spring中配置了Quartz,可以利用它来执行定时任务。需要注意的是,Quartz的灵活性允许你根据需求配置多个Job和Trigger,甚至可以在运行时动态调整调度策略。结合Spring的DI和AOP特性,...
在Spring中配置好数据库连接,Quartz会自动处理这部分。 8. **lib目录下的jar包**:在“lib”目录下,通常会包含Spring和Quartz的jar文件,以及它们的依赖库。例如,`spring-context.jar`、`spring-beans.jar`、`...