`

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支持

    源码 博文链接:https://zmx.iteye.com/blog/1479602

    spring jar 包详解

    (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。 (11) spring-web.jar 这个jar文件包含Web应用...

    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,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时你...

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

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

    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 2.0 开发参考手册

    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中文帮助文档

    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 Gossip

    简单邮件 HTML 邮件 内嵌图片或附档 排程 Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。 使用 ...

    Spring API

    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 chm文档

    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.3.x企业应用开发实战(完整版).part2

    13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.5.2 Spring对Executor所提供的抽象 13.6 实际应用中的任务调度 13.6.1 如何产生任务 13.6.2 任务调度对应用...

    spring in action英文版

     5.1.2 理解Spring对事务管理的支持  5.1.3 介绍Spring的事务管理器  5.2 在Spring中编写事务  5.3 声明式事务  5.3.1 理解事务属性  5.3.2 声明一个简单的事务策略  5.4 通过方法名声明事务 ...

    Spring in Action(第2版)中文版

    5.3.3使用spring对jdbc的dao支持类 5.4在spring里集成hibernate 5.4.1选择hibernate的版本 5.4.2使用hibernate模板 5.4.3建立基于hibernate的dao 5.4.4使用hibernate3上下文会话 5.5spring和java持久api ...

    Spring in Action(第二版 中文高清版).part2

    5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java...

    Spring in Action(第二版 中文高清版).part1

    5.3.3 使用Spring对JDBC的DAO支持类 5.4 在Spring里集成Hibernate 5.4.1 选择Hibernate的版本 5.4.2 使用Hibernate模板 5.4.3 建立基于Hibernate的DAO 5.4.4 使用Hibernate 3上下文会话 5.5 Spring和Java...

    Spring3.x企业应用开发实战(完整版) part1

    13.4.2 Spring对JDK Timer的支持 13.5 Spring对JDK 5.0 Executor的支持 13.5.1 了解JDK 5.0的Executor 13.5.2 Spring对Executor所提供的抽象 13.6 实际应用中的任务调度 13.6.1 如何产生任务 13.6.2 任务调度对应用...

    java 中Spring task定时任务的深入理解

    java 中Spring task定时任务的深入理解 ...同时,spring还支持使用Java自带的Timer定时器和Quartz定时框架。限于篇幅,这里将只介绍spring task的使用。 其实,官方文档已经介绍地足够详细,只不过都是英

    timer-start:支持 npm 的计时器

    计时器 灵感来自mateusmaso/计时器 var timer = new Timer ( ) ; timer . start ( ) ; timer . stop ( ) ; timer . pause ( ) ; timer . resume ( ) ; timer . seconds ;

    metrics-spring-example:一个使用 Coda Hale 的指标库和 Ryan Tenney 的 metrics-spring 库的简单示例 Java Web 应用程序

    metrics-jvm - 用于监控 JVM 的一系列仪表和仪表metrics-spring -Ryan Tenney 的库,为使用 Spring 配置指标提供支持。 它包含一个 Spring MVC 控制器。 每个 Web 请求处理程序方法(慢速、快速、随机)都使用 ...

Global site tag (gtag.js) - Google Analytics