`
crazycat03
  • 浏览: 175564 次
  • 性别: Icon_minigender_2
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

spring与定时器的整合

    博客分类:
  • java
阅读更多

前几天做了个关于定时器的模块,以前也没接触过,在网上查了好多,多数都是那种单个的定时器,没有与web结合,后来终于偶然发现了一个关于spring整合定时器的例子,就是仿造那个例子写的,spring也没研究太深,原来spring自带就有与定时器的整合而且有相关类,主要是配置文件了run方法

1 首先写一个继承自TimerTask的类

public class MyTask extends TimerTask {

 private static final Log log = LogFactory.getLog(MyTask.class);

 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 WinnerTask() {
 }

 public void run() {

  log.info("开始执行指定任务");
  // TODO 添加自定义的详细任务
  try {
   Calendar cal = Calendar.getInstance();
   if (!isRunning) {
    if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY) && flag) {
         isRunning = true;
    //在这里加入相关业务,比如myService.notice();

     isRunning = false;
     flag = false;
     log.info("指定任务执行结束");
       }
   } else {
    log.info("上一次任务执行还未结束");
      }
   if (C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)) {
    flag = true;
   }
  } catch (Exception e) {

  }
  log.info("指定任务执行结束");
 }

 public MyService getMyService() {
  return myService;
 }

 public void setMyService(MyService myService) {
  this.myService = myService;
 }

}

2 配置文件,命名自己定和你工程里的命名规则一样就行,只要在web.xml配置上在过程启动的时候同时加载就可以了

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- 定时器 -->
<beans default-lazy-init="false">
 <bean id="repeatingTrigger"
  class="org.springframework.scheduling.timer.ScheduledTimerTask">
  <!--启动一秒后执行 -->
  <property name="delay">
   <value>1000</value>
  </property>
  <!--每隔一小时执行一次 -->
  <property name="period">
   <value>3600000</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>

 <bean id="task" class="com.servlet.myTask">
  <property name="myService">
   <ref bean="myService" />
  </property>
 </bean>
</beans>

 

好了,这样就可以定时工作了

参考 http://www.diybl.com/course/3_program/java/javashl/2008118/96599.html

分享到:
评论

相关推荐

    spring动态定时器封装

    本文将深入探讨如何在Spring框架中进行动态定时器的封装,结合标签"源码"和"工具",我们将探讨Spring与Quartz库的整合,以及如何通过源码理解其实现机制。 首先,让我们了解一下Spring的定时任务支持。Spring提供了...

    web spring 定时器

    本文将深入探讨Spring中的定时器特性,以及如何在Java环境中结合Quartz库进行更高级的定时任务整合。 首先,Spring提供了两种主要的定时任务解决方案:一是Spring内置的`TaskScheduler`接口,二是基于Quartz库的`@...

    spring定时器

    以上内容详细介绍了Spring定时器的相关知识点,包括其基本概念、不同类型的定时器以及实际应用中的配置和实现方法。通过理解和掌握这些知识,开发者可以更高效地利用Spring框架来实现复杂的定时任务功能。

    ESSH整合Spring 定时器配置

    这个压缩包文件"ESSH整合Spring 定时器配置资料"很可能包含了详细的步骤文档、示例代码和可能需要的jar包。建议你下载后仔细阅读资料,以便更深入地理解和应用这些配置知识。在实际操作过程中,如果遇到问题,可以...

    定时器需要的jar,spring

    这里提到的"定时器需要的jar, spring"指的是使用Spring框架来实现定时任务时所需的依赖库。Spring提供了强大的定时任务支持,通过整合第三方库如Quartz,可以轻松地在应用中配置和管理定时任务。 首先,我们来看`...

    Spring-quartz实现定时器(含代码)

    本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...

    Spring Quartz 定时器示例(Java工程版)

    下面将详细介绍Spring与Quartz结合使用的相关知识点。 1. **Quartz简介** - Quartz是一个开源的作业调度框架,用于创建、调度和执行任务。它支持复杂的时间表和触发条件,可以用来执行定时任务。 2. **Spring...

    spring定时器(内含TimerTask实现和Quartz实现两种方式)

    在Spring中整合Quartz,首先需要添加对应的依赖到项目中,然后配置Quartz的Scheduler。接着,我们可以定义Job和Trigger,Job代表实际的任务,Trigger则是决定何时执行Job的规则。 ```xml &lt;groupId&gt;org.quartz-...

    quartz和spring整合实现的定时器

    Spring与Quartz的整合主要是通过Spring的JobDetail和TriggerBean来实现的。JobDetail用于定义Job的基本信息和关联的执行类,而TriggerBean则定义了触发Job执行的时间规则。在Spring的配置文件中,我们可以声明这些...

    shiro权限管理+SSM登陆+spring定时器+基本博客管理

    标题 "shiro权限管理+SSM登陆+spring定时器+基本博客管理" 涵盖了四个关键领域:Shiro权限管理、SSM框架集成、Spring定时器以及基础的博客管理系统构建。以下是对这些知识点的详细说明: 1. **Shiro权限管理**: ...

    quartz+spring定时器

    【标题】"quartz+spring定时器"涉及的是在Java应用中使用Spring框架与Quartz库来实现定时任务的管理。Quartz是一个开源的作业调度框架,它允许开发者定义、调度和执行作业,而Spring则提供了强大的依赖注入(DI)和...

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

    【Spring定时器】 Spring框架提供了更高级的定时任务管理方式,比如 `org.springframework.scheduling.TaskScheduler` 和 `org.springframework.scheduling.annotation.Scheduled` 注解。通过使用Spring的定时器,...

    spring之quartz定时器

    《Spring与Quartz定时器深度解析》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。其中,Spring对任务调度的支持是其一大亮点,尤其与Quartz的集成,使得开发者能够方便地实现定时任务。Quartz是一...

    spring定时器-quartz开发的步骤

    首先,理解Spring定时器的基础概念。Spring提供了两种定时任务框架:`java.util.Timer`和`@Scheduled`注解。然而,对于复杂的企业级应用,Quartz更具有优势,因为它支持集群、灵活的调度策略和丰富的API。 1. **...

    spring+quartz定时器

    Spring框架与Quartz库的结合为Java开发者提供了一个强大且灵活的定时任务解决方案。让我们深入探讨一下这个"spring2.0+quartz1.6定时器"的工作原理和实现细节。 首先,Spring框架是一个广泛应用的开源Java框架,它...

    spring 定时器时间配置.doc

    在Spring中整合Quartz,我们可以利用Spring的`SchedulerFactoryBean`来创建和管理调度器,同时使用`MethodInvokingJobDetailFactoryBean`和`CronTriggerBean`来定义要执行的任务和触发执行的时间。 首先,我们需要...

    Spring Jbpm流程整合1

    【Spring与JBPM整合详解】 在企业级应用中,工作流管理系统扮演着至关重要的角色,Spring框架和JBPM的结合可以有效地实现业务流程的自动化管理。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、...

    java_Timer定时器实例_Spring实例

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

    spring 定时器

    【Spring 定时器】是Spring框架中的一个关键特性,它允许开发者在应用程序中实现定时任务,例如定期数据同步、日志清理等自动化操作。在Spring中,定时任务的实现主要依赖于`Spring Task`模块,也被称为Spring的作业...

Global site tag (gtag.js) - Google Analytics