1,首先定义创建定时任务类MainTask.java
package com.lwh.action;
public class MainTask {
public void execute(){
System.out.println("Hello");
}
}
2,注册定时任务类,并配置任务计划和任务调度器,首先新建一个TimerConfig.xml并放在WEB-INF文件夹下。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 注册定时执行实体 -->
<bean id="mainTask" class="com.lwh.action.MainTask"/>
<!-- 注册定时器信息 -->
<bean id="mainJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定 要执行的定时任务类 -->
<property name="targetObject">
<ref bean="mainTask"/>
</property>
<!-- 指定执行任务的方法名称-->
<property name="targetMethod">
<value>execute</value>
</property>
</bean>
<bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 声明要运行的实体 -->
<property name="jobDetail">
<ref bean="mainJob"/>
</property>
<!-- 设置要运行的时间 -->
<property name="cronExpression">
<!-- 在每天上午1点到下午1:30期间的每1分钟触发 -->
<value>0 0-30 1 ? * SAT</value>
</property>
</bean>
<!-- 注册定时器 -->
<bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!-- 注入定时器实体 -->
<property name="triggers">
<list>
<ref local="timeTrigger"/>
</list>
</property>
</bean>
</beans>
3,在Web应用中启动定时服务。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/TimerConfig.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
另外:需要用到的包如:spring.jar,commons-collections.jar
commons-logging.jar,jta.jar,quartz-1.6.0.jar等等。
附:cronExpression配置说明
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
这里特殊字符说明:
1.逗号[,]的作用,用于分隔字符,如秒1,10,59 这是在1秒、10秒、59秒时触发。
2.横线[-]的作用,用于表示多少至多少,如秒1-20 这是在1到20之间每秒都触发。
3.星号
的作用,用于表示忽略本项,如秒* 这样在整个表达式中将不把秒做为条件。
4.斜线[/]的作用,用于表示倍数累加,如秒5/15 这是在5,20,35,50时触发。
5.问号[?],只能用在日期和星期,因为两者之间有一个相同性,例如星期一,在日期表达中是20号,这样在进行cron计算时会有问题,因此可以使用?号,把其中的一个屏蔽掉。例如 * * * ? * 1 表示为每星一触发。
表达式 意义
"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触发
分享到:
相关推荐
这个学习笔记将深入探讨Quartz的核心概念、主要功能以及如何在实际项目中使用它。 首先,我们要理解Quartz的基本架构。Quartz的核心组件包括Scheduler、Job、Trigger和Calendar。Scheduler是调度器,负责管理所有的...
通过深入阅读这些资料,你可以更全面地了解Quartz的功能和用法,进一步提升你的定时任务管理能力。 总的来说,Quartz提供了一套强大的定时任务管理框架,而结合Spring可以更好地融入到现有的应用架构中,简化任务的...
an"/> </property> <!-- 设置Cron表达式,例如:每天凌晨1点执行,格式为:秒 分 时 日 月 周,如0 0 1 * * ?...通过理解并熟练掌握这些基本概念和用法,你可以有效地利用 Quartz 来优化和自动化你的业务流程。
2. **定义Job**:创建Job类实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法。 3. **创建JobDetail**:配置Job的属性,如Job类、名字、组名等。 4. **创建Trigger**:根据需求创建合适...
接着,定义Job类,这个类需要实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法,这里编写实际的任务执行逻辑。Spring的@Component注解可以使其成为Spring管理的bean,这样Quartz就能...
本篇文章将详细介绍如何在SpringBoot项目中集成Quartz,以及如何配置和使用它。 首先,我们需要在项目中引入Quartz相关的依赖。在Maven项目中,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>org.spring...
标题中的“spring2.0学习笔记+spring定时任务”表明了这个压缩包文件包含的是关于Spring框架2.0版本的学习资料,特别是关于Spring的定时任务功能。Spring是Java开发中最广泛应用的轻量级框架之一,它提供了一整套...
9. **call函数**:《javaScript 中 call 函数的用法说明.mht》讲述了call方法如何改变函数调用时的上下文(this值),以及如何借用其他对象的方法,是理解JavaScript面向对象编程的重要概念。 10. **单例模式**:...
- **在 Quartz 中如何设置旋转点**: 通过设置 `CGContextTranslateCTM` 和 `CGContextRotateCTM` 方法来实现旋转点的设置。 #### 12. 媒体播放 - **iPhone 游戏中既播放背景音乐又播放特效声音**: 使用 `...
本教程将全面介绍SpringBoot的核心特性,并通过实例深入解析其使用方法。 1. SpringBoot基础 - SpringBoot的核心概念:起步依赖(Starters)、自动配置(Auto-configuration)和嵌入式服务器。 - 创建第一个...
学习笔记中可能包含了一些关于Objective-C图形编程的内容,如Core Graphics或Quartz 2D,它们是苹果平台进行低级绘图的API,可用于创建自定义视图和复杂的图形。 六、实践应用 理论学习后,通过编写简单的iOS应用...
另一种方法是使用Windows API,如DirectShow,它提供了一个用于多媒体设备,包括摄像头的框架。在C#中,可以使用P/Invoke技术调用这些API函数。但是,这种方法较为复杂,需要对DirectShow有深入理解。 如果你选择...
这个“Directshow_SDK开发笔记”很可能是开发者在研究DirectShow SDK过程中整理的一份详细文档,涵盖了DirectShow的核心概念、API使用、滤镜图形构建以及实际开发中的技巧和问题解决方案。 在DirectShow中,最重要...
5. **方便集成各种优秀框架**:Spring提供了对多个第三方框架(如Struts、Hibernate、Hessian、Quartz等)的直接支持,降低了这些框架的使用门槛。 6. **降低Java EE API的使用难度**:Spring对Java EE API进行了...
### Spring+Ajax+MyBatis+SpringMVC 笔记 #### 1. Spring框架概述 **Spring** 是一个开源的、轻量级的应用开发框架,它主要关注于简化企业级应用开发。Spring 旨在通过以下几点来实现这一目标: - **简化开发**:...
在Spring Boot中使用Quartz,需要添加相关依赖,并创建Quartz配置以及Job类: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-quartz ``` 在配置类中配置Quartz: ```java...
### 无线互联IOS笔记知识点详解 #### 一、iOS操作系统概览 - **核心设备**:iOS操作系统作为苹果公司的核心产品之一,专为iPhone、iPod touch...此外,掌握XIB文件的使用方法有助于快速构建用户界面,提高开发效率。
7. **整合JPA保存数据**:使用@Entity、@Repository、@Service和@Controller等注解,配合JPA的save()、find()等方法,可以实现对数据库的CRUD操作。 8. **使用JdbcTemplate**:JdbcTemplate是Spring提供的一个简单...
它集成了大量常用的第三方库配置,如Redis、MongoDB、JPA、RabbitMQ、Quartz等,只需少量甚至零配置就能快速启动服务。此外,Spring Boot还内置了Tomcat服务器,使得应用可以直接运行,无需额外部署。 ## 四、...