前几天做了个关于定时器的模块,以前也没接触过,在网上查了好多,多数都是那种单个的定时器,没有与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与Quartz库的整合,以及如何通过源码理解其实现机制。 首先,让我们了解一下Spring的定时任务支持。Spring提供了...
本文将深入探讨Spring中的定时器特性,以及如何在Java环境中结合Quartz库进行更高级的定时任务整合。 首先,Spring提供了两种主要的定时任务解决方案:一是Spring内置的`TaskScheduler`接口,二是基于Quartz库的`@...
以上内容详细介绍了Spring定时器的相关知识点,包括其基本概念、不同类型的定时器以及实际应用中的配置和实现方法。通过理解和掌握这些知识,开发者可以更高效地利用Spring框架来实现复杂的定时任务功能。
这个压缩包文件"ESSH整合Spring 定时器配置资料"很可能包含了详细的步骤文档、示例代码和可能需要的jar包。建议你下载后仔细阅读资料,以便更深入地理解和应用这些配置知识。在实际操作过程中,如果遇到问题,可以...
这里提到的"定时器需要的jar, spring"指的是使用Spring框架来实现定时任务时所需的依赖库。Spring提供了强大的定时任务支持,通过整合第三方库如Quartz,可以轻松地在应用中配置和管理定时任务。 首先,我们来看`...
本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...
下面将详细介绍Spring与Quartz结合使用的相关知识点。 1. **Quartz简介** - Quartz是一个开源的作业调度框架,用于创建、调度和执行任务。它支持复杂的时间表和触发条件,可以用来执行定时任务。 2. **Spring...
在Spring中整合Quartz,首先需要添加对应的依赖到项目中,然后配置Quartz的Scheduler。接着,我们可以定义Job和Trigger,Job代表实际的任务,Trigger则是决定何时执行Job的规则。 ```xml <groupId>org.quartz-...
Spring与Quartz的整合主要是通过Spring的JobDetail和TriggerBean来实现的。JobDetail用于定义Job的基本信息和关联的执行类,而TriggerBean则定义了触发Job执行的时间规则。在Spring的配置文件中,我们可以声明这些...
标题 "shiro权限管理+SSM登陆+spring定时器+基本博客管理" 涵盖了四个关键领域:Shiro权限管理、SSM框架集成、Spring定时器以及基础的博客管理系统构建。以下是对这些知识点的详细说明: 1. **Shiro权限管理**: ...
【标题】"quartz+spring定时器"涉及的是在Java应用中使用Spring框架与Quartz库来实现定时任务的管理。Quartz是一个开源的作业调度框架,它允许开发者定义、调度和执行作业,而Spring则提供了强大的依赖注入(DI)和...
【Spring定时器】 Spring框架提供了更高级的定时任务管理方式,比如 `org.springframework.scheduling.TaskScheduler` 和 `org.springframework.scheduling.annotation.Scheduled` 注解。通过使用Spring的定时器,...
《Spring与Quartz定时器深度解析》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。其中,Spring对任务调度的支持是其一大亮点,尤其与Quartz的集成,使得开发者能够方便地实现定时任务。Quartz是一...
首先,理解Spring定时器的基础概念。Spring提供了两种定时任务框架:`java.util.Timer`和`@Scheduled`注解。然而,对于复杂的企业级应用,Quartz更具有优势,因为它支持集群、灵活的调度策略和丰富的API。 1. **...
Spring框架与Quartz库的结合为Java开发者提供了一个强大且灵活的定时任务解决方案。让我们深入探讨一下这个"spring2.0+quartz1.6定时器"的工作原理和实现细节。 首先,Spring框架是一个广泛应用的开源Java框架,它...
在Spring中整合Quartz,我们可以利用Spring的`SchedulerFactoryBean`来创建和管理调度器,同时使用`MethodInvokingJobDetailFactoryBean`和`CronTriggerBean`来定义要执行的任务和触发执行的时间。 首先,我们需要...
【Spring与JBPM整合详解】 在企业级应用中,工作流管理系统扮演着至关重要的角色,Spring框架和JBPM的结合可以有效地实现业务流程的自动化管理。Spring作为一个强大的轻量级框架,提供了丰富的功能,包括依赖注入、...
标题与描述均提到了“Java_Timer定时器实例_Spring实例”,这表明文章主要讨论的是如何在Java中使用Timer类创建定时任务,并将其整合到Spring框架中。以下是对该主题的详细解析: ### Java中的Timer定时器 #### ...
【Spring 定时器】是Spring框架中的一个关键特性,它允许开发者在应用程序中实现定时任务,例如定期数据同步、日志清理等自动化操作。在Spring中,定时任务的实现主要依赖于`Spring Task`模块,也被称为Spring的作业...