`

spring对timer支持

阅读更多

     java2借助于java.util.Timer和java.util.TimerTask,这样两个类能够为应用提供简单定时器功能。

     而Quartz是Open Source社区努力的结果,它能够提供任务调度服务,任何J2SE和J2EE应用都能够使用它,借助于Quartz,开发者能够完成各种复杂的任务调度。

     Spring集成了上述两种任务调度服务的支持。

     下面对Quartz的使用进行介绍:

      创建一个java类:

package com.openv.spring;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

public class LogJobBean extends QuartzJobBean{
	
	protected static final Log log=LogFactory.getLog(LogJobBean.class);
	private int timeout;
	
	public void setTimeout(int timeout){
		log.info("setTimeout().........");
		this.timeout=timeout;
	}

	@Override
	protected void executeInternal(JobExecutionContext arg0)
			throws JobExecutionException {
		log.info("Creating LogJobBean().........");
		
	}
	
}

 写入配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

	<bean name="logJob" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass">
			<value>com.openv.spring.LogJobBean</value>
		</property>
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout">
					<value>10</value>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="jobDetail">
			<ref bean="logJob"/>
		</property>
		<property name="startDelay">
			<value>5000</value>
		</property>
		<property name="repeatInterval">
			<value>2000</value>
		</property>
		<property name="repeatCount">
			<value>3</value>
		</property>
	</bean>
	
	<bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="simpleTrigger"/>
			</list>
		</property>
	</bean>

</beans>

 使用测试类:

package com.openv.spring;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

/**
 * 
 * @author weiliuhong
 *
 */
public class Main {
	
	protected static Log log=LogFactory.getLog(Main.class);

	/**
	 * @param <Scheduler>
	 * @param args
	 */
	public static void main(String[] args) {

		Resource resource=new ClassPathResource("appcontext.xml");
		BeanFactory factory=new XmlBeanFactory(resource);
		Scheduler sfb=(Scheduler)factory.getBean("sfb");
		
		try{
			Thread.sleep(20000);
		}catch (InterruptedException e) {
			log.error(e.getMessage(),e);
		}
		
		try{
			sfb.shutdown();
		}catch(SchedulerException se){
			log.error(se.getMessage(),se);
		}
	}

}

 这样就实现对timer的调用

分享到:
评论

相关推荐

    Spring的定时任务开发及对Quartz和Timer支持

    在【标题】"Spring的定时任务开发及对Quartz和Timer支持"中,涉及到的是Spring在处理定时任务方面的特性,这在企业级应用中非常常见,用于执行一些周期性的后台任务,如数据同步、报表生成、清理任务等。 首先,...

    Spring的quartz和Timer实现定时

    首先,我们来看一下Spring对Quartz的支持。Spring通过`org.springframework.scheduling.quartz`包提供了一套完整的Quartz集成方案。Quartz的优点在于其强大、灵活和可扩展性。你可以定义复杂的调度规则,如按照特定...

    Spring 使用Timer quartz区别

    对于`java.util.Timer`,Spring 提供了`org.springframework.scheduling.timer` 包,可以方便地通过Spring的bean配置来管理和调度Timer任务。而对于Quartz,Spring则提供了`org.springframework.scheduling.quartz` ...

    spring timer、quartz俩种任务调度

    Spring框架提供了对定时任务的强大支持,包括内置的`Spring Timer`和集成第三方的`Quartz Scheduler`。这两种方式都允许开发者灵活地安排和执行周期性任务。下面我们将深入探讨这两种任务调度器及其在Spring中的使用...

    Spring使用timer定时器-能精确几点运行定时任务

    在Spring中,我们通常会通过`@Scheduled`注解配合`@EnableScheduling`来定义定时任务,但这并不支持精确到几点运行。为了实现这个功能,我们可以使用`Timer`和`TimerTask`,并结合Spring的`ApplicationContextAware`...

    3. spring版 timer HelloWorld

    实际上,Spring还提供了更多的定时任务支持,比如`@Scheduled`注解,可以更直观地在方法上标注定时任务,以及`@Async`注解用于异步任务执行。 在实际项目中,定时任务可能涉及到数据库操作、服务调用等复杂逻辑,...

    spring-timer-quartz.zip_namegnd_spring定时任务

    首先,Spring对定时任务的支持主要通过`org.springframework.scheduling`包中的接口和类实现。其中,`TaskScheduler`和`TaskExecutor`是两个核心接口,分别用于异步执行周期性任务和一次性任务。然而,如果需要更...

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    此外,Spring还支持任务集群和分布式调度,适用于大型企业级应用。 总的来说,`Timer`适用于简单的定时需求,而Spring的定时任务功能全面,适合复杂和多样的定时场景。在实际开发中,可以根据项目规模和需求选择...

    在Spring中使用Timer --实现由时间触发的事件任务.doc

    在Spring中使用`Timer`,有两种主要的方法来创建和调度这些时间触发的事件任务: 1. **继承TimerTask创建任务** 这种方法与传统的Java `Timer`用法相似。你需要创建一个类,继承自`java.util.TimerTask`,并重写`...

    spring timer

    Spring的定时任务支持回调,例如`beforeExecute`、`afterExecute`和`terminated`方法,可以实现对任务执行状态的监控和异常处理。 8. **源码解析**: 标签中的“源码”提示我们可以深入研究Spring的源代码,理解...

    spring定时器 Spring定时器的两种实现方式Java的Timer类和OpenSymphony的Quartz。

    Spring框架提供了两种方式来处理定时任务:Java内置的`Timer`类和第三方库OpenSymphony的Quartz。下面将详细介绍这两种实现方式。 ### 1. Java `Timer` 类 Java `java.util.Timer` 类是Java标准库中的一个轻量级...

    Java关于时间调度的几种实现方(Timer Quartz Spring)

    本篇文章将深入探讨Java中的三种主要时间调度实现:`Timer`、`TimerTask`、以及第三方库`Quartz`和`Spring`的定时任务功能。 ### 1. Java `Timer` 和 `TimerTask` `java.util.Timer` 类提供了一个调度任务的方法,...

    spring定时器超级详细(附jar包)

    此外,Spring还支持通过`@Scheduled`注解直接使用Cron表达式,例如: ```java @Scheduled(cron = "0 0/5 * * * ?") public void executeTaskWithCron() { // 执行你的任务代码 } ``` 定时任务的应用场景非常广泛...

    spring4.1核心包

    这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。 UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、...

    spring jar 包详解

    - **功能简介**:包含了 Spring 对 DAO 特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink 等 ORM 框架。 - **应用场景**:适用于需要使用 ORM 框架进行数据持久化的项目。 - **依赖关系**:依赖于 `spring-...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

    最新最全的spring开发包

    这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时你...

    Spring5所有需要的jar包

    `spring-context-support.jar`包含了对异步任务和定时任务的支持,如使用 Quartz 或者 JDK 的 Timer。 8. **Spring Test**: `spring-test.jar`提供了单元测试和集成测试的支持,与JUnit或Mockito等测试框架结合...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

     这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时...

Global site tag (gtag.js) - Google Analytics