`
liushanxunliu
  • 浏览: 12889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringMVC整合Quartz实现定时任务以及Tomcat服务执行初始化定时任务

 
阅读更多
转载!!
在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集成quartz完成定时任务

    SSM(Spring、SpringMVC、MyBatis)框架与Quartz的集成是Java开发中常见的一种实现定时任务的方法。Quartz是一个强大的开源作业调度框架,可以用来执行定时任务,而SSM作为主流的Java Web开发框架,为业务逻辑处理...

    springMVC+Mybatis+quartz+log4j+maven项目

    1. **初始化项目**:使用Maven创建一个新的项目结构,配置pom.xml文件以引入SpringMVC、Mybatis、Quartz和Log4j等相关依赖。 2. **配置SpringMVC**:编写Spring的配置文件,定义DispatcherServlet、视图解析器、...

    SSM框架+redis+druid事务控制+定时任务介绍+sql脚本+测试说明及请求路径

    总结来说,这个项目提供了一个使用SSM框架构建的Web应用,整合了Redis缓存、Druid数据源以及定时任务功能,同时包含了SQL脚本来创建数据库结构和初始化数据。MyEclipse 2014和Tomcat 8是开发和运行环境,用户可以...

    基于javaweb+ssm技术的农作物信息服务平台.zip

    3. 异步处理:使用Spring的Task或者Quartz实现定时任务,例如定期更新农作物价格信息。 4. 缓存技术:引入Redis缓存常用数据,减轻数据库压力,提高系统响应速度。 七、项目实施与优化 1. 需求分析:明确系统功能...

    基于SpringBoot,ORM-Mybatis,SpringMVC和多种组件构建的企业信息化开发基础平台,快速构建OA、CMS

    标题中的“基于SpringBoot,ORM-Mybatis,SpringMVC和多种组件构建的企业信息化开发基础平台”揭示了一个关键的信息:这是一个使用Spring技术栈构建的、用于企业信息化建设的基础开发框架。这个框架集成了SpringBoot...

    面试准备1

    - **Quartz**:Quartz是一个开源的作业调度框架,它可以与Spring框架集成,通过创建配置文件如`spring-quartz.xml`来定义Jobs和Triggers,实现更复杂的定时任务调度。 2. **技术栈** - **Spring Boot**:是一个...

    毕设项目:基于springboot+mybatis实现的外卖订餐系统.zip

    对于订单状态的自动更新或者商家接单提醒等功能,可能使用了Quartz或Spring Task等定时任务框架。 10. **测试**: 为了确保代码质量和系统稳定性,项目中应该包含单元测试和集成测试,使用JUnit和Mockito等工具...

    基于springboot微信点餐系统微信小程序源码数据库.zip

    9. **任务调度**: 如果系统中有定时任务,例如每天凌晨更新菜品信息,可以使用Quartz或Spring Task进行后台任务的调度。 10. **日志记录**: 为了便于系统监控和问题排查,项目中通常会集成日志框架如Log4j或Logback...

    springboot196高校教师科研管理系统.rar

    8. **任务调度**:可能使用Quartz或Spring Task进行定时任务,例如定期统计科研成果。 9. **报表与数据分析**:可能通过Apache POI读取Excel数据,生成统计报表,或者使用Chart.js、Highcharts等库展示图表。 10. **...

    【ssm项目源码】在线点餐系统.zip

    8. **任务调度**:系统可能还需要处理定时任务,如订单超时处理、库存同步等,这可能用到Quartz或Spring的Task调度。 9. **单元测试与集成测试**:为了保证代码质量,项目中会有对应的测试代码,使用JUnit进行单元...

    基于SpringBoot+Vue的电商应用系统源码数据库.zip

    4. **任务调度**:Quartz或Spring Task可能用于处理后台任务,如定时生成报表、清理过期数据等。 5. **测试**:JUnit和Mockito用于单元测试,Spring Boot Test支持集成测试。 这个项目对于学习和实践现代Web开发...

    面试宝典-v4.0

    - Quartz:可能介绍了定时任务调度器Quartz的基本使用和监控Job执行状态的方法。 - MQ(消息队列):可能讨论了消息队列的概念、常见的消息队列技术(如RabbitMQ、ActiveMQ等)以及它们在项目中的应用。 - Dubbo:...

    高校就业招聘系统微信小程序.zip

    7. **性能优化**:包括缓存策略(如Redis)、数据库索引优化、异步处理(如Quartz定时任务)等,以提高系统的响应速度和并发处理能力。 8. **部署与监控**:项目部署可能涉及Docker容器化、Jenkins持续集成/持续...

    SpringBoot新手学习手册

    - @Scheduled创建定时任务,@Async实现异步调用。 - 多环境配置、修改端口号、YML文件的使用、整合拦截器等实用技巧。 - 通过Maven或Gradle打包发布应用。 总之,SpringBoot新手学习手册涵盖了从基础到进阶的...

    kjyw-master_JAVA脚手架22_

    - **任务调度**: 可能集成 Quartz 或 Spring Task 进行定时任务处理。 - **国际化支持**: 支持多语言环境,便于不同地区的用户使用。 - **缓存机制**: 可能采用 Redis 或 Ehcache 进行数据缓存,提高性能。 此外,...

    adminstore:一个简单的项目初始化模板,集成shiro,spring,hibernate,spring mvc,ehcache,disconver,bootstrap。搭建项目时候不错的一个选择!,后台采用AdminLte

    AdminStore 本源码包采用maven结构 环境要求 JDK6或更高版本(支持JDK7、JDK8)。建议使用JDK8,有更好的内存管理。更低版本的JDK6、JDK7可能...定时任务 quartz AdminLTE bootstrap 搭建步骤 创建数据库。如使用MySQL

    springboot-cms:基于Springboot,Spring,SpringMVC,Mybatis,FreeMarker,Bootstrap,Apache Shiro,Quartz,Email,MySQL等的内容管理系统

    CMS系统说明 一,开发背景 二,技术框架 1.开发环境 JDK1.8 Apache-Maven-3.5.0 ...|- sql -------------------------------------------------------- 数据库建表语句以及初始化 |- src -----------

    基于ssm在线云音乐系统.zip

    3. **数据库脚本**:创建数据库和表的SQL文件,用于初始化数据。 4. **静态资源**:如图片、音频文件,供用户在线浏览和播放。 5. **微信小程序代码**:包括WXML、WXSS和JS文件,构成小程序的界面和逻辑。 6. **...

    Java进阶SpringBoot视图技术共12页.pdf

    SpringBoot简化了传统Spring应用的初始化和配置,使得开发更加高效。本教程共12页,旨在帮助开发者掌握SpringBoot在构建Web应用时如何处理视图层的细节。 1. **SpringBoot简介** SpringBoot是由Pivotal团队提供的...

    java最新面试宝典

    - 如何在项目中集成Quartz实现定时任务。 **六、MQ** **1. RabbitMQ:** - **知识点概述:** - RabbitMQ的基本架构。 - 消息队列的创建与使用。 - 消息确认机制。 - 消息持久化策略。 - RabbitMQ的高可用性...

Global site tag (gtag.js) - Google Analytics