一个简单的spring 定时期。
所需jar包:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Timer</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:com/spring.xml
</param-value>
</context-param>
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
spring.xml
<?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:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 注解注入bean -->
<context:component-scan base-package="com" />
<bean id="methodInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="print" />
</property>
<property name="targetMethod">
<value>start</value>
</property>
</bean>
<!-- 配置触发器 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!--
这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下
-->
<property name="jobDetail">
<ref bean="methodInvokingJobDetail" />
</property>
<!-- 每天的9点到18点每隔1分钟触发-->
<property name="cronExpression">
<value>0 * 9-18 * * ?</value>
</property>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 添加触发器 -->
<property name="triggers">
<list>
<ref local="cronTrigger" />
</list>
</property>
</bean>
</beans>
xml里文件里描述的一个自定义的bean源码:
package com.isoftstone.timer;
import org.springframework.stereotype.Service;
@Service("print")
public class PrintTask {
public void start(){
System.out.println("admin----");
}
}
那里就是你需要写的一些任务了。
<property name="cronExpression">
<value>0 * 9-18 * * ?</value>
</property>
这个地方就是要什么时候触发。
一些值的例子和含义:
字段允许值允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选)留空, 1970-2099 , - * /
表达式意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发。
到此结束。简单吧。
- 大小: 10.4 KB
分享到:
相关推荐
下面是一个完整的Spring定时器示例: 1. **配置Spring配置类** 首先,我们需要创建一个配置类,启用定时任务支持,并提供一个`ThreadPoolTaskScheduler`实例,用于调度任务。 ```java @Configuration @...
对于初学者来说,理解这些实例有助于深入掌握Spring的定时任务管理,并能够在实际项目中灵活运用。同时,随着Spring的不断迭代,推荐使用更现代的Spring Task,因为它具有更好的灵活性和扩展性,同时也更容易与其他...
《Spring定时器的实例》 在Java开发中,Spring框架提供了强大的定时任务处理能力,使得开发者可以方便地实现定时任务的调度。本文将深入解析一个基于Spring的定时器实例,名为ScheduledTimer,以及相关的类和方法,...
这个“spring定时器的一个小示例”提供了一个简单的应用实例,演示了如何在Spring环境中设置和运行定时任务。由于压缩包中未包含jar包,我们需要额外添加依赖以确保程序正常运行。 首先,我们要了解Spring的定时...
本文将深入探讨如何在Spring框架中进行动态定时器的封装,结合标签"源码"和"工具",我们将探讨Spring与Quartz库的整合,以及如何通过源码理解其实现机制。 首先,让我们了解一下Spring的定时任务支持。Spring提供了...
### 一、Spring定时器概述 #### 1.1 定时器简介 Spring框架提供了多种实现定时任务的方式,包括但不限于`@Scheduled`注解、`ScheduledExecutorService`以及`Timer`类。其中,基于`Timer`类的定时任务配置较为传统但...
在IT领域,特别是Java开发中,Spring框架因其强大的功能和灵活性而备受青睐。其中,Spring提供的定时任务功能,使得开发者能够在应用中轻松...希望本文能帮助你在项目中灵活运用Spring定时器,提高开发效率和应用性能。
标题“Spring的定时调用”涉及的是Spring框架中的任务调度功能,这在企业级应用开发中非常常见,用于实现周期性的任务执行,如数据同步、日志清理等。...结合源码阅读和相关工具,可以更好地理解和运用这一功能。
Spring的定时器,也称为Spring Task或者Spring Scheduler,是用于执行预定任务的一个强大工具,它允许开发者灵活地配置和管理周期性的任务。 首先,让我们了解Spring定时任务的基础。Spring通过`@Scheduled`注解和`...
标题 "定时器 quartz 和 spring" 涉及到的是两个在Java开发中非常重要的框架——Quartz和Spring。Quartz是一个开源的工作调度框架,它允许开发者创建、调度和执行任务,而Spring则是一个功能丰富的应用程序框架,...
Spring 定时器与其他定时框架对比 Spring 提供的定时任务功能相比 Quartz 或者 Spring Batch 等其他定时框架,集成更加简单,且不需要额外管理定时任务的运行状态,适合小型和中型项目。对于大型复杂项目,可能...
在实际开发中,Java定时器常与其他框架结合使用,如Spring的`@Scheduled`注解或Quartz等高级定时任务库,以实现更复杂的定时任务需求。 通过以上的讲解,你应该对Java定时器的使用有了深入的理解。在实际项目中,...
本章讲解了如何使用Spring框架进行定时任务和计划任务的管理,包括如何配置定时器、触发器、任务执行器等组件。读者将掌握Spring定时任务的配置和使用技巧,以及如何监控和管理任务执行状态。 ### 第16章:使用...
这些代码示例可以帮助我们更好地理解Spring和Quartz的整合过程,并在实际项目中灵活运用。 通过学习这个示例,开发者能够掌握如何在Spring应用中设置和管理定时任务,这对于构建有定时需求的服务,如后台数据处理、...
基于Spring-Boot的排队功能Demo,通过线程同步实现简单的排队功能,运用了多线程同步技术,可通过PostMan进行接口的并发访问模拟,在调用接口时需要在Head里加入openId参数作为客户访问的唯一标识,房间状态由定时器...
在大型企业级应用如Spring、Struts2和Mybatis的组合框架下,`Timer`和`TimerTask`可以发挥重要作用,比如进行后台数据处理、定期检查更新、发送通知等。下面我们将详细探讨这两个类以及如何在实际项目中运用它们。 ...
综上所述,解决Spring Quartz在负载均衡环境下的重复执行问题,需要综合运用Quartz的集群特性、数据库Job Store、公平调度以及应用层面的设计策略。通过这些方法,可以确保在多服务器环境中,定时任务的执行有序且...
Quartz是Java领域一款强大的开源任务调度框架,用于在应用程序中安排和执行任务。它允许开发者灵活地定义作业(Jobs)和...而`spring_pro_03`项目则为你提供了一个实际操作的起点,帮助你更好地理解和运用这些概念。
3Spring定时器、拦截器的应用 4跟踪Spring源码,追踪解决问题 前后端分离开发 手把手演示如何串联React技术栈App和管理后台 让后台Form表单提交符合RESTful规范 比较SPA和传统后台两种会话方式:Token和Session ...