`

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

    Timer定时器代码.zip

    将`Timer`和`TimerTask`整合到Spring框架中,可以利用Spring的AOP(面向切面编程)和DI(依赖注入)特性,使定时任务的管理更加灵活和方便。同时,通过在`web.xml`中配置监听器或者使用Spring的`@Scheduled`注解,...

Global site tag (gtag.js) - Google Analytics