第一步:在MyEclipse下建立一个项目Spring_Clock,导入相关jar包spring.jar commons-collections.jar
commons-lang.jar commons-logging.jar quartz.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>
<!-- 第一步: 配置好要定时调用的业务类 -->
<bean id="msgService" class="cn.yulon.service.MessageService" />
<!-- 第二步: 定义好具体要使用类的哪一个业务方法 -->
<bean id="workDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 目标bean -->
<property name="targetObject" ref="msgService"/>
<!-- 要执行目标bean的哪一个业务方法 -->
<property name="targetMethod" value="printLog"/>
<!-- 是否并发 -->
<property name="concurrent" value="false"/>
</bean>
<!-- 第三步: 定义好调用模式: 如每隔1秒钟调用一次或每天的哪个时间调用一次等 -->
<bean id="msgTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="workDetail"/>
<property name="cronExpression" value="0/1 * * * * ?"/>
</bean>
<!--第四步 把定义好的任务放到调度(Scheduler)工厂里面,注意这里的ref bean -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="msgTrigger"/>
</list>
</property>
</bean>
</beans>
在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
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
应用场合: 如做一些定时提醒,日志定时备份等应用
分享到:
相关推荐
Spring 中的 Quartz 配置-Spring 定时器-java 定时器 在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java ...
Spring Quartz 定时器示例(Web工程版),欢迎下载。
在IT行业中,定时任务是许多系统不可...两者各有优劣,Spring内置定时器简单易用,适合轻量级的定时需求;而Quartz功能强大,适用于复杂的定时场景,但配置和管理相对复杂。根据项目需求选择合适的定时器方案至关重要。
Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...
Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器
Quartz本身是一个功能强大的任务调度框架,而Spring通过提供一些便利的类和工具,进一步简化了在Spring环境中使用Quartz的过程。 首先,为了使用Spring Quartz,你需要引入必要的依赖。在上述例子中,至少需要`...
Spring通过提供FactoryBean类和一些辅助工具,使得在Spring容器中使用Quartz变得更加简单。 首先,要在项目中引入Spring和Quartz的相关依赖,通常需要`spring.jar`以及Quartz的jar包,如`quartz-all-1.6.6.jar`。...
本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让我们了解Spring与Quartz的集成。Spring提供了对Quartz的全面支持,使得在Spring应用中配置和管理定时...
- Spring通过提供`org.springframework.scheduling.quartz`包来简化Quartz的配置和管理。通过Spring,我们可以利用IoC(控制反转)和AOP(面向切面编程)的优势,使任务调度更加灵活和可维护。 3. **Spring配置...
### Quartz定时器介绍与简单使用 #### 1.1 Quartz介绍 Quartz 是一款功能强大的开源任务调度框架,它完全采用 Java 编写而成。该框架允许开发人员以灵活的方式定义作业及其触发规则,从而实现对任务的定时调度。...
4. **启动和停止定时器**:在Spring应用启动时,由于配置了`autoStartup="true"`,Quartz定时器会自动启动。若需手动控制,可以使用ApplicationContext获取Scheduler实例并调用其`start()`或`standby()`方法来启动或...
本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...
在Spring中集成Quartz,首先需要在项目的类路径下添加这三个jar包,然后通过Spring的配置文件来声明Quartz的相关bean。你可以定义`SchedulerFactoryBean`来创建调度器,`JobDetailBean`来定义作业,以及`...
在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...
首先,要使用Spring的Quartz定时器,你需要确保引入了以下核心的jar包: 1. `quartz.jar`:这是Quartz的核心库,包含了Quartz的调度器、作业、触发器等核心组件。 2. `spring-context-support.jar`:Spring框架提供...
总的来说,Spring集成Quartz提供了灵活的定时任务解决方案,但同时需要注意避免配置错误和并发问题,以防止任务被执行多次。通过理解Quartz的工作原理和Spring的定时任务API,我们可以有效地管理定时任务,确保它们...
总结,Spring Boot集成Quartz定时器能够方便地创建和管理定时任务,同时利用Spring的依赖注入,使得Job可以灵活地调用其他服务或组件。这种方式使得我们的任务更加模块化和易于维护。在实际开发中,根据项目需求,...
为了更好地理解Cron表达式的实际应用,下面提供了一个简单的Spring Boot项目示例,用于演示如何配置和使用Cron定时任务。 ```java import org.springframework.scheduling.annotation.Scheduled; import org.spring...
但可以想象,如果包含了一个名为“demo”的项目,那么可能是一个示例工程,包含了使用Spring Quartz的配置和一个简单的定时任务示例,供读者下载并运行以加深理解。通常,这样的示例会包含Spring配置文件(如`...