`

spring quartz定时器的简单配置和使用

    博客分类:
  • java
 
阅读更多

第一步:导入相关jar包

(注:单单是在后台执行需要的jar包,若是经过tomcat执行,需额外添加一个jar包——jta-1.1.jar)

不同版本需要依赖的jar:

quartz-all-1.6.0.jar版本需要的jar包:

commons-collections-3.2.jar

commons-logging-1.1.1.jar

log4j-1.2.16.jar

spring.jar

quartz-1.8.4.jar版本需要的jar包:

commons-collections-3.2.jar

commons-logging-1.1.1.jar

log4j-1.2.16.jar

quartz-1.8.4.jar

slf4j-api-1.6.1.jar

slf4j-log4j12-1.6.1.jar

spring.jar

第二步: 新建立一个业务bean-->cn.yulon.service.MessageService

package cn.yulon.service;

public class MessageService {

int i;

public void printLog(){

i++;

System.out.println("this is my timer:" +i);

}

第三步:在Spring配置文件time-bean.xml,如下

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans >

&lt;!-- 第一步: 配置好要定时调用的业务类 --&gt;

<bean id="messageService" class="cn.yulon.service.MessageService" />

&lt;!-- 第二步: 定义好具体要使用类的哪一个业务方法 --&gt;

<bean id="printTimerJob"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

&lt;!-- 目标bean --&gt;

<property name="targetObject" ref="messageService" />

&lt;!-- 要执行目标bean的哪一个业务方法 --&gt;

<property name="targetMethod" value="printLog" />

&lt;!-- 是否并发 --&gt;

<property name="concurrent" value="false"/>

</bean>

&lt;!-- 第三步: 定义好调用模式: 如每隔2秒钟调用一次或每天的哪个时间调用一次等 --&gt;

<bean id="printTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail" ref="printTimerJob" />

<property name="cronExpression" value="0/2 * * * * ?" />

</bean>

&lt;!-- 启动定时器 --&gt;

&lt;!--第四步 把定义好的任务放到调度(Scheduler)工厂里面,注意这里的ref bean --&gt;

<bean id="schedulerFactoryBean"

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="applicationContextSchedulerContextKey" value="applicationContext"/>

<property name="triggers">

<list>

<ref bean="printTimerTrigger" />

</list>

</property>

</bean>

&lt;!-- end --&gt;

</beans>

相关介绍:

&lt;!--

在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:

0 0 10,14,16 * * 每天上午10点,下午2点和下午4点

0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟

30 0 0 1 1 2012 在2012年1月1日午夜过30秒时

0 0 8-5 * MON-FRI 每个工作日的工作时间

- 区间

* 通配符 你不想设置那个字段

--&gt;

&lt;!--

cronExpression的介绍:

按顺序 <value> 秒 分 小时 日期 月份 星期 年<value>

字段 允许值 允许的特殊字符

秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日期 1-31 , - * ? / L W C

月份 1-12 或者 JAN-DEC , - * /

星期 1-7 或者 SUN-SAT , - * ? / L C #

年 (可选)留空,1970-2099 , - * /

“*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。

--&gt;

在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:

0 0 10,14,16 * * 每天上午10点,下午2点和下午4点

0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟

30 0 0 1 1 2012 在2012年1月1日午夜过30秒时

0 0 8-5 * MON-FRI 每个工作日的工作时间

- 区间

* 通配符 你不想设置那个字段

第四步:新建测试类SpringTest

package cn.test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {

public static void main(String[] args) {

ApplicationContext act = new ClassPathXmlApplicationContext("time-bean.xml");

}

}

运行结果如下 :

this is my timer:1

this is my timer:2

this is my timer:3

this is my timer:4

this is my timer:5

web.xml的配置:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;

<web-app version="2.5"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

&lt;!-- 加载spring的配置文件(一个或者多个) --&gt;

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:time-bean.xml,applicationContext*.xml</param-value>

</context-param>

&lt;!-- 配置spring监听器(作用就是启动Web容器时,自动装配applicationContext.xml文件的配置信息) --&gt;

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

</web-app>

应用场合: 如做一些定时提醒,定时发送邮件、短信,日志定时备份等应用
分享到:
评论

相关推荐

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

    Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...

    Spring Quartz 定时器示例(Web工程版)

    Spring Quartz 定时器示例(Web工程版),欢迎下载。

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

    在IT行业中,定时任务是许多系统不可...两者各有优劣,Spring内置定时器简单易用,适合轻量级的定时需求;而Quartz功能强大,适用于复杂的定时场景,但配置和管理相对复杂。根据项目需求选择合适的定时器方案至关重要。

    Spring Quartz定时器的jar包

    Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...

    Spring Quartz定时器

    Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器

    SpringQuartz定时器的配置[参照].pdf

    Quartz本身是一个功能强大的任务调度框架,而Spring通过提供一些便利的类和工具,进一步简化了在Spring环境中使用Quartz的过程。 首先,为了使用Spring Quartz,你需要引入必要的依赖。在上述例子中,至少需要`...

    SpringQuartz定时器的配置[归类].pdf

    Spring通过提供FactoryBean类和一些辅助工具,使得在Spring容器中使用Quartz变得更加简单。 首先,要在项目中引入Spring和Quartz的相关依赖,通常需要`spring.jar`以及Quartz的jar包,如`quartz-all-1.6.6.jar`。...

    简单实现Spring Quartz定时器

    本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让我们了解Spring与Quartz的集成。Spring提供了对Quartz的全面支持,使得在Spring应用中配置和管理定时...

    Spring Quartz 定时器示例(Java工程版)

    - Spring通过提供`org.springframework.scheduling.quartz`包来简化Quartz的配置和管理。通过Spring,我们可以利用IoC(控制反转)和AOP(面向切面编程)的优势,使任务调度更加灵活和可维护。 3. **Spring配置...

    Quartz定时器介绍与简单使用

    ### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...

    spring和quartz的定时器的启动和停止例子

    4. **启动和停止定时器**:在Spring应用启动时,由于配置了`autoStartup="true"`,Quartz定时器会自动启动。若需手动控制,可以使用ApplicationContext获取Scheduler实例并调用其`start()`或`standby()`方法来启动或...

    Spring-quartz实现定时器(含代码)

    本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...

    spring quartz定时器支持的jar包

    在Spring中集成Quartz,首先需要在项目的类路径下添加这三个jar包,然后通过Spring的配置文件来声明Quartz的相关bean。你可以定义`SchedulerFactoryBean`来创建调度器,`JobDetailBean`来定义作业,以及`...

    java Spring OpenSymphony的Quartz定时器的时间设置

    在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...

    使用spring的quartz定时器要用到的jar包

    首先,要使用Spring的Quartz定时器,你需要确保引入了以下核心的jar包: 1. `quartz.jar`:这是Quartz的核心库,包含了Quartz的调度器、作业、触发器等核心组件。 2. `spring-context-support.jar`:Spring框架提供...

    spring java 定时器 执行两次 quartz

    总的来说,Spring集成Quartz提供了灵活的定时任务解决方案,但同时需要注意避免配置错误和并发问题,以防止任务被执行多次。通过理解Quartz的工作原理和Spring的定时任务API,我们可以有效地管理定时任务,确保它们...

    spring boot集成quartz定时器

    总结,Spring Boot集成Quartz定时器能够方便地创建和管理定时任务,同时利用Spring的依赖注入,使得Job可以灵活地调用其他服务或组件。这种方式使得我们的任务更加模块化和易于维护。在实际开发中,根据项目需求,...

    spring定时器时间配置

    为了更好地理解Cron表达式的实际应用,下面提供了一个简单的Spring Boot项目示例,用于演示如何配置和使用Cron定时任务。 ```java import org.springframework.scheduling.annotation.Scheduled; import org.spring...

    spring+quartz定时器

    通过查看这些文件,你可以更具体地了解如何将Spring 2.0和Quartz 1.6整合在一起,以及如何编写和配置定时任务。如果你遇到任何问题或需要进一步的指导,可以参考Quartz和Spring的官方文档,或者寻求社区的帮助。

Global site tag (gtag.js) - Google Analytics