`

spring timer的整合

阅读更多

 

 

1  定时任务的spring 配置文件配置

 <?xml version="1.0" encoding="UTF-8"?>
	<!-- 定时器 -->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
	http://www.springframework.org/schema/tx
	 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
	 http://www.springframework.org/schema/aop 
	 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
	 http://www.springframework.org/schema/jee 
	 http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
	 http://www.springframework.org/schema/context 
	 http://www.springframework.org/schema/context/spring-context-2.5.xsd"
	default-autowire="byName" default-lazy-init="false">
	<!-- 执行的任务类 -->
	<bean id="task" class="com.ambow.TimerTaskTest.MyTask">
	<!-- 
		<property name="myService">
			<ref bean="myService" />
		</property>
		 -->
	</bean>
	<!--  触发器  以及任务的执行规则  -->
	<bean id="repeatingTrigger" class="org.springframework.scheduling.timer.ScheduledTimerTask">
		<!--启动一秒后执行 -->
		<property name="delay">
			<value>4000</value>
		</property>
		<!--每隔一小时执行一次 3600000-->
		<property name="period">
			<value>5000</value>
		</property>
		<!--注入要监控的javaBean -->
		<property name="timerTask">
			<ref bean="task" />
		</property>
		<!--类型是否为fixedRate型,默认为fixedDelay-->
		<property name="fixedRate">
			<value>true</value>
		</property>
	</bean>
	<!-- 注册触发器  -->
	<bean id="scheduler" class="org.springframework.scheduling.timer.TimerFactoryBean">
		<property name="scheduledTimerTasks">
			<list>
				<ref bean="repeatingTrigger" />
			</list>
		</property>
	</bean>
</beans>

 

 2 timer的任务类 注意要继承 TimerTask 

 

import java.util.Calendar;
import java.util.TimerTask;
/**
 * 可以再这个类中加入 service 执行类中的方法
 */

public class MyTask extends TimerTask {
	private static boolean isRunning = false;
	private static boolean flag = true;
	private static final int C_SCHEDULE_HOUR = 23;// 每天执行的时间,定为每晚11点
	// private MyService
	// myService;//在这里加上你要用到的service,到时候和spring的controller一样注入使用即可

	public void run() {
		System.out.println("开始执行指定任务");
		// TODO 添加自定义的详细任务
		try {
			Calendar cal = Calendar.getInstance();
			if (!isRunning) {
				System.out.println( "定时器执行了 。。。。");
//				if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY) && flag) {
					isRunning = true; //一旦有任务执行 就锁定 这个方法
//					// 在这里加入相关业务,比如myService.notice();
					isRunning = false; //任务执行结束就 打开执行的锁定
					flag = false;
//					System.out.println("指定任务执行结束");
//				}
			} else {
				System.out.println("上一次任务执行还未结束");
			}
			if (C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)) {
				flag = true;
			}
		} catch (Exception e) {
			e.printStackTrace();
			
		}
	}
	// public MyService getMyService() {
	// return myService;
	// }
	// public void setMyService(MyService myService) {
	// this.myService = myService;
	// }
}

 

3 把配置文件配置到spring的配置文件中

分享到:
评论

相关推荐

    spring 整合 quartz|| timer

    spring 整合 quartz|| timer有几种方式? 我收集的:《spring定时Timer&Quartz》 代码示例,依赖spring2.x.jar quartz1.6.x.jar 相关介绍: http://blog.csdn.net/liu251/archive/2009/08/18/4459514.aspx

    Spring的quartz和Timer实现定时

    在Java世界中,任务调度是十分重要的,Spring框架提供了多种定时任务实现方式,其中包括Quartz和Timer。Quartz是一款开源的作业调度框架,而Timer是Java标准库中的一个类,用于执行定时任务。这两个工具都能帮助...

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

    Quartz与Spring的整合主要有以下步骤: 1. 引入Quartz和Spring的依赖。 2. 配置Quartz Scheduler,包括数据源、JobStore类型等。 3. 定义Spring Bean作为Quartz Job,通过实现`org.quartz.Job`接口,并使用`@...

    java_Timer定时器实例_Spring实例

    标题与描述均提到了“Java_Timer定时器实例_Spring实例”,这表明文章主要讨论的是如何在Java中使用Timer类创建定时任务,并将其整合到Spring框架中。以下是对该主题的详细解析: ### Java中的Timer定时器 #### ...

    spring整合JPBM3.2

    【Spring整合Jbpm3.2】的知识点详解 在集成Spring和Jbpm3.2时,我们依然可以借鉴之前版本的集成方式,尽管Jbpm3.2已经是较新的版本。在Jbpm3.1.x时期,Spring与Jbpm的整合主要依赖于`spring-modules-jbpm31.jar`,...

    Spring整合Quartz后的简单定时任务示例

    本资源"Spring整合Quartz后的简单定时任务示例"提供了如何将这两者结合使用的实例,旨在帮助开发者实现基于Spring的定时任务功能。 首先,我们要理解Spring对定时任务的支持。Spring框架通过`@Scheduled`注解提供了...

    spring-timer-quartz.zip_namegnd_spring定时任务

    本文将详细介绍如何使用Spring整合Quartz库来创建和管理定时任务。 首先,Spring对定时任务的支持主要通过`org.springframework.scheduling`包中的接口和类实现。其中,`TaskScheduler`和`TaskExecutor`是两个核心...

    java Timer定时器实例 Spring实例.doc

    【Java Timer定时器】 在Java中,`java.util.Timer` 类是用于...在实际项目中,通常会使用Spring作为核心框架,整合Struts处理前端请求,以及Hibernate进行数据持久化。这样可以构建出松耦合、易于维护的大型应用。

    java中spring与Quartz 整合定时任务.docx

    在Java开发中,Spring框架和Quartz库的整合是实现定时任务的常见方法。Spring提供了对Quartz的集成,使得我们可以方便地在Spring应用上下文中配置和管理定时任务。下面将详细解释如何在Spring中整合Quartz以及相关的...

    spring4.1核心包

    提供的对AspectJ框架的整合,也是A面向切面编程。 AspectJ可用于基于普通Java对象的模块化 注意:aop 和 aspects区别: http://www.oschina.net/translate/comparative_analysis_between_spring_aop_and_aspectj。...

    Spring+3.x企业应用开发实战光盘源码(全)

     第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。  第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的...

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

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

    spring + jdk TimerTask定时器

    ### 将TimerTask整合到Spring Spring并不直接支持`TimerTask`,但可以通过Spring的`TaskScheduler`接口间接使用。`TaskScheduler`允许你异步执行任务,并可以设定延迟和周期。 首先,创建一个`@Component`,实现`...

    开源框架 Spring Gossip

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

    【女朋友都懂的】spring boot 整合 mybatis-plus

    【女朋友都懂的】Spring Boot 整合MyBatis-Plus Spring Boot 整合MyBatis-Plus是为了简化Spring Boot应用中的数据访问层的开发,利用MyBatis-Plus提供的强大功能,如自动化 CRUD 操作,使得开发更加高效。MyBatis-...

    Spring整合TimerTask实现定时任务调度

    【Spring整合TimerTask实现定时任务调度】 定时任务在软件开发中扮演着重要角色,它们用于执行周期性的、计划性的操作,如数据备份、清理、通知等。Spring框架提供了多种方式来实现定时任务,其中之一就是整合JDK...

    Spring 定時器

    Spring提供了`SpringBeanJobFactory`和`org.springframework.scheduling.quartz.SchedulerFactoryBean`来方便地整合Quartz。 总结,Spring的定时器功能强大且易于使用,无论是简单的定时任务还是复杂的调度需求,都...

    spring quartz相关jar包(多版本)

    关于标签"springquartz jar包",这表明这些 jar 文件是专门为整合 Spring 和 Quartz 而准备的。Spring 提供了对 Quartz 的支持,使得开发者可以通过 Spring 的 XML 配置或者注解方式声明和管理 Quartz 调度器,简化...

    Spring 2.0 开发参考手册

    整合 17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 ...

    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 任务调度对应用...

Global site tag (gtag.js) - Google Analytics