转载!!
在java中我们常用Timer和TimerTask实现定时功能,而在JavaEE项目中可以使用Spring整合Quartz定时器,非常的强大,能够实现所有想要的定时任务,包括Tomcat服务器开始启动,定时定点定周等等的任务,有关Quartz的介绍和时间配置网上有很多的资料,就不在累赘,下面主要介绍SpringMVC整合Quartz的实现步骤。
来源博客: http://blog.csdn.net/fengshizty
1、 导入quartz.jar包,或者pom.xml 配置对应的依赖:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.6</version>
</dependency>
2、 在Web项目web.xml中配置quartz的配置文件加载路径:
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/rest-servlet.xml,
/WEB-INF/classes/pyc-spring-quartz.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
3、写具体的定时调度的任务:
package andy.test.quartz.schedule;
/**
* @author Zhang,Tianyou
* @version:2014-12-11 下午12:00:24
*
* 一个测试的打印定时任务
*/
public class MyPrintSchedule {
public void printSomething(){
//内容就是打印一句话
System.out.println("this is andy schedule");
}
}
4、配置quartz的xml配置信息,名字可以随便,需和web.xml中的一致。
pyc-spring-quartz.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 添加调度的任务bean 配置对应的class-->
<bean id="myPrintSchedule" class="andy.test.quartz.schedule.MyPrintSchedule" />
<!--配置调度具体执行的方法-->
<bean id="myPrintDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myPrintSchedule" />
<property name="targetMethod" value="printSomething" />
<property name="concurrent" value="false" />
</bean>
<!--配置调度执行的触发的时间-->
<bean id="myPrintTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="myPrintDetail" />
<property name="cronExpression">
<!-- 每天早上8点执行任务调度 -->
<value>0 0 8 * * ?</value>
</property>
</bean>
<!-- quartz的调度工厂 调度工厂只能有一个,多个调度任务在list中添加 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 所有的调度列表-->
<ref local="myPrintTrigger" />
</list>
</property>
</bean>
</beans>
这样就实现了myPrint的任务调度,执行时间是每天早上8点执行一次,打印:
this is andy schedule
这句话。
quartz的功能是非常强大的,使用也非常的简单方便,有事需要web启动时,执行一些初始化的任务,这是我们执行配置对应的执行调度的触发时间就能完成。其具体实现如下:
<!--配置调度执行的触发的时间-->
<bean id="myPrintTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="myPrintDetail" />
<property name="cronExpression">
<!-- 不重复计数,只执行一次 -->
<property name="repeatCount" value="0" />
</property>
</bean>
上面的配置完成了,服务器启动执行的任务。只被执行一次。
分享到:
相关推荐
SSM(Spring、SpringMVC、MyBatis)框架与Quartz的集成是Java开发中常见的一种实现定时任务的方法。Quartz是一个强大的开源作业调度框架,可以用来执行定时任务,而SSM作为主流的Java Web开发框架,为业务逻辑处理...
1. **初始化项目**:使用Maven创建一个新的项目结构,配置pom.xml文件以引入SpringMVC、Mybatis、Quartz和Log4j等相关依赖。 2. **配置SpringMVC**:编写Spring的配置文件,定义DispatcherServlet、视图解析器、...
总结来说,这个项目提供了一个使用SSM框架构建的Web应用,整合了Redis缓存、Druid数据源以及定时任务功能,同时包含了SQL脚本来创建数据库结构和初始化数据。MyEclipse 2014和Tomcat 8是开发和运行环境,用户可以...
3. 异步处理:使用Spring的Task或者Quartz实现定时任务,例如定期更新农作物价格信息。 4. 缓存技术:引入Redis缓存常用数据,减轻数据库压力,提高系统响应速度。 七、项目实施与优化 1. 需求分析:明确系统功能...
标题中的“基于SpringBoot,ORM-Mybatis,SpringMVC和多种组件构建的企业信息化开发基础平台”揭示了一个关键的信息:这是一个使用Spring技术栈构建的、用于企业信息化建设的基础开发框架。这个框架集成了SpringBoot...
- **Quartz**:Quartz是一个开源的作业调度框架,它可以与Spring框架集成,通过创建配置文件如`spring-quartz.xml`来定义Jobs和Triggers,实现更复杂的定时任务调度。 2. **技术栈** - **Spring Boot**:是一个...
对于订单状态的自动更新或者商家接单提醒等功能,可能使用了Quartz或Spring Task等定时任务框架。 10. **测试**: 为了确保代码质量和系统稳定性,项目中应该包含单元测试和集成测试,使用JUnit和Mockito等工具...
9. **任务调度**: 如果系统中有定时任务,例如每天凌晨更新菜品信息,可以使用Quartz或Spring Task进行后台任务的调度。 10. **日志记录**: 为了便于系统监控和问题排查,项目中通常会集成日志框架如Log4j或Logback...
8. **任务调度**:可能使用Quartz或Spring Task进行定时任务,例如定期统计科研成果。 9. **报表与数据分析**:可能通过Apache POI读取Excel数据,生成统计报表,或者使用Chart.js、Highcharts等库展示图表。 10. **...
8. **任务调度**:系统可能还需要处理定时任务,如订单超时处理、库存同步等,这可能用到Quartz或Spring的Task调度。 9. **单元测试与集成测试**:为了保证代码质量,项目中会有对应的测试代码,使用JUnit进行单元...
4. **任务调度**:Quartz或Spring Task可能用于处理后台任务,如定时生成报表、清理过期数据等。 5. **测试**:JUnit和Mockito用于单元测试,Spring Boot Test支持集成测试。 这个项目对于学习和实践现代Web开发...
- Quartz:可能介绍了定时任务调度器Quartz的基本使用和监控Job执行状态的方法。 - MQ(消息队列):可能讨论了消息队列的概念、常见的消息队列技术(如RabbitMQ、ActiveMQ等)以及它们在项目中的应用。 - Dubbo:...
7. **性能优化**:包括缓存策略(如Redis)、数据库索引优化、异步处理(如Quartz定时任务)等,以提高系统的响应速度和并发处理能力。 8. **部署与监控**:项目部署可能涉及Docker容器化、Jenkins持续集成/持续...
- @Scheduled创建定时任务,@Async实现异步调用。 - 多环境配置、修改端口号、YML文件的使用、整合拦截器等实用技巧。 - 通过Maven或Gradle打包发布应用。 总之,SpringBoot新手学习手册涵盖了从基础到进阶的...
- **任务调度**: 可能集成 Quartz 或 Spring Task 进行定时任务处理。 - **国际化支持**: 支持多语言环境,便于不同地区的用户使用。 - **缓存机制**: 可能采用 Redis 或 Ehcache 进行数据缓存,提高性能。 此外,...
AdminStore 本源码包采用maven结构 环境要求 JDK6或更高版本(支持JDK7、JDK8)。建议使用JDK8,有更好的内存管理。更低版本的JDK6、JDK7可能...定时任务 quartz AdminLTE bootstrap 搭建步骤 创建数据库。如使用MySQL
CMS系统说明 一,开发背景 二,技术框架 1.开发环境 JDK1.8 Apache-Maven-3.5.0 ...|- sql -------------------------------------------------------- 数据库建表语句以及初始化 |- src -----------
3. **数据库脚本**:创建数据库和表的SQL文件,用于初始化数据。 4. **静态资源**:如图片、音频文件,供用户在线浏览和播放。 5. **微信小程序代码**:包括WXML、WXSS和JS文件,构成小程序的界面和逻辑。 6. **...
SpringBoot简化了传统Spring应用的初始化和配置,使得开发更加高效。本教程共12页,旨在帮助开发者掌握SpringBoot在构建Web应用时如何处理视图层的细节。 1. **SpringBoot简介** SpringBoot是由Pivotal团队提供的...
- 如何在项目中集成Quartz实现定时任务。 **六、MQ** **1. RabbitMQ:** - **知识点概述:** - RabbitMQ的基本架构。 - 消息队列的创建与使用。 - 消息确认机制。 - 消息持久化策略。 - RabbitMQ的高可用性...