文章目录

  • 一、实现思路
  • 二、第一种实现方式
    • 2.1. 新建web项目
    • 2.2. 导入依赖
    • 2.3. 创建一个job类
    • 2.4. 创建配置文件
    • 2.5. 配置web.xml
    • 2.6.运行web服务,观察Quartz定时任务
  • 三、第二种实现方式
    • 3.1. 创建job类
    • 3.2. 修改spring-config.xml
    • 3.3. 运行web服务,观察Quartz定时任务
  • 四、 附上配置文件内容
一、实现思路
1.新建web项目
2.导入依赖
3.配置web.xml实现方式有2种:
第一种:
1.新建job类继承抽象类重写executeInternal方法
2.在配置文件中配置jobDetail1属性
3.配置trigger,并配置trigger对应的JobDetail
4.将trigger注册到schedule中
5.运行web服务,观察Quartz定时任务注:
配置jobDetail1属性用的是 org.springframework.scheduling.quartz.JobDetailFactoryBean第二种:
1.新建job类 自定义方法
2.在配置文件中配置jobDetail1属性
3.配置trigger,并配置trigger对应的JobDetail
4.将trigger注册到schedule中
5.运行web服务,观察Quartz定时任务注:
配置jobDetail1属性用的是org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean再说一下trigger配置方式有2种:
第一种:简单配置
org.springframework.scheduling.quartz.SimpleTriggerFactoryBean第二种:简单配置
org.springframework.scheduling.quartz.CronTriggerFactoryBean实现方式推荐使用第二种,因为比较灵活
trigger配置方式推荐使用第二种
二、第一种实现方式
2.1. 新建web项目

2.2. 导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>spring-quartz</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>spring-quartz</name><url>http://www.gblfy.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><spring.version>5.2.8.RELEASE</spring.version></properties><dependencies><!--spring 相关依赖 start--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><!--spring 相关依赖 end--><!--quartz 依赖--><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.1</version></dependency></dependencies><build><finalName>spring-quartz</finalName><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><executions><execution><id>tomcat-run</id><goals><goal>exec-war-only</goal></goals><phase>package</phase><configuration><path>/</path></configuration></execution></executions></plugin></plugins></build>
</project>
2.3. 创建一个job类

使用JobDetailFactoryBean 继承QuartzJobBean抽象类

package com.gblfy.job;import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import java.time.LocalTime;/*** 第1种 实现方式*/
public class MyJob extends QuartzJobBean {@Overrideprotected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {LocalTime localTime = LocalTime.now();System.out.println("我MyJob正在执行"+localTime.toString());}
}
2.4. 创建配置文件

spring-config.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--第1种--><bean id="jobDetail1" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><property name="jobClass" value="com.gblfy.job.MyJob"/><property name="name" value="myJob1"/><property name="group" value="group1"/></bean><!--触发器1--><bean id="tigger1" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"><property name="jobDetail" ref="jobDetail1"/><property name="name" value="tigger1"/><property name="group" value="group1"/><property name="repeatInterval" value="5000"/></bean><!--将触发器注册到 schedule--><bean id="schedule" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="tigger1"/></list></property></bean>
</beans>
2.5. 配置web.xml
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-config.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
</web-app>
2.6.运行web服务,观察Quartz定时任务

三、第二种实现方式

在第一种实现方式的基础上,修改第3和4步即可

3.1. 创建job类

使用MethodInvikingJobDetailFactoryBean(比较灵活)
创建job类

package com.gblfy.job;import java.time.LocalTime;/*** 第2种 实现方式*/
public class MyJob2 {/***   <property name="targetObject" ref="myJob2"/>*/public void excute() {LocalTime localTime = LocalTime.now();System.out.println("我MyJob2正在执行" + localTime.toString());}/*** <property name="targetClass" value="com.gblfy.job.MyJob2"/>*/
//    public static void excute() {//        LocalTime localTime = LocalTime.now();
//        System.out.println("我MyJob2正在执行" + localTime.toString());
//    }
}
3.2. 修改spring-config.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--第2种--><bean id="myJob2" class="com.gblfy.job.MyJob2"></bean><bean id="jobDetail2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="name" value="myJob2"/><property name="group" value="group1"/><property name="targetObject" ref="myJob2"/><property name="targetMethod" value="excute"/></bean><!--触发器2--><bean id="tigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="jobDetail2"/><property name="name" value="tigger2"/><property name="group" value="group1"/><property name="cronExpression" value="0/8 * * * * ?"/></bean><!--将触发器注册到 schedule--><bean id="schedule" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="tigger2"/></list></property></bean>
</beans>
3.3. 运行web服务,观察Quartz定时任务

四、 附上配置文件内容
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--第1种--><bean id="jobDetail1" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><!--指定执行的job类--><property name="jobClass" value="com.gblfy.job.MyJob"/><!--下面2个属性拼在一起 指定执行job唯一标识可以理解为:哪个组的哪个任务--><property name="name" value="myJob1"/><property name="group" value="group1"/></bean><!--第2种--><bean id="myJob2" class="com.gblfy.job.MyJob2"></bean><bean id="jobDetail2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!--下面2个属性拼在一起 指定执行job唯一标识可以理解为:哪个组的哪个任务--><property name="name" value="myJob2"/><property name="group" value="group1"/><!--指定执行的job的类--><property name="targetObject" ref="myJob2"/><!--如果执行的job类中的方法为静态简言之:static 修饰excute方法 使用--><!-- <property name="targetClass" value="com.gblfy.job.MyJob2"/>--><!--指定执行的job的类中的方法 非静态--><property name="targetMethod" value="excute"/></bean><!--触发器1--><bean id="tigger1" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"><!--配置jobDetail 属性信息--><property name="jobDetail" ref="jobDetail1"/><!--指定触发器--><property name="name" value="tigger1"/><!--指定组信息 --><property name="group" value="group1"/><!--触发规则  间隔5秒执行一次--><property name="repeatInterval" value="5000"/></bean><!--触发器2--><bean id="tigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><!--配置jobDetail 属性信息--><property name="jobDetail" ref="jobDetail2"/><!--指定触发器--><property name="name" value="tigger2"/><!--组信息 --><property name="group" value="group1"/><!--触发规则 间隔8秒执行一次--><property name="cronExpression" value="0/8 * * * * ?"/></bean><!--将触发器注册到 schedule--><bean id="schedule" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><!--配置触发器 列表--><ref bean="tigger1"/><ref bean="tigger2"/></list></property></bean>
</beans>

Spring Schema整合Quartz_01相关推荐

  1. struts2+hibernate-jpa+Spring+maven 整合(1)

    1.0.0 struts2 与 spring 的整合. 1.1.0 新建maven工程 , 编写pom.xml ,这里只需要简单的添加 一个组件就够了: 在myeclipse 生成的pom.xml 添 ...

  2. MongoDB和Java(4):Spring Data整合MongoDB(XML配置)

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  3. Java程序员从笨鸟到菜鸟之(七十九)细谈Spring(八)spring+hibernate整合基本详解

    由于spring和hibernate处于不同的层次,Spring关心的是业务逻辑之间的组合关系,Spring提供了对他们的强大的管理能力, 而Hibernate完成了OR的映射,使开发人员不用再去关心 ...

  4. 关于RabbitMQ以及RabbitMQ和Spring的整合

    基本概念 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现.如果不熟悉AMQP,直接看RabbitMQ的文档会比较困难.不过它 ...

  5. 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”

    在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...

  6. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    Java框架搭建-Maven.Mybatis.Spring MVC整合搭建 1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/e ...

  7. Spring Boot 整合MyBatis(23)

    Spring Boot 整合MyBatis Spring Boot 整合 Druid 引入依赖 配置 application.yml pring Boot 整合 tk.mybatis 引入依赖 配置 ...

  8. 玩转Spring Cache --- 整合进程缓存之王Caffeine Cache和Ehcache3.x【享学Spring】

    每篇一句 人到中年就是一部西游记:悟空的压力,八戒的身材,沙僧的发型,唐僧的唠叨 前言 前面文章大篇幅详细讲解了Spring Cache缓存抽象.三大缓存注解的工作原理等等.若是细心的小伙伴会发现:讲 ...

  9. SSM Chapter 07 MyBatis与Spring的整合

    SSM Chapter 07 MyBatis 与 Spring 的整合 笔记 本章目标: 掌握Spring与MyBatis的集成 掌握使用SqlSessionTemplate实现整合 掌握使用Mapp ...

最新文章

  1. 汇编 debug调试
  2. php——验证身份证是否合法的函数
  3. 《伊甸之路》:离“现象级”一步之遥
  4. mongo的php查询,使用PHP进行简单查询的mongo查询速度慢
  5. 51单片机8X8点阵滚动显示温度--C51源代码
  6. C#面向对象15 多态
  7. solrcloud配置中文分词器ik
  8. jQuery命令汇总(转)
  9. 学习Java,真的可以月薪过万嘛?真实个人经历告诉你,记录了平时学习的内容以及学习过程中最真实的感受(五)
  10. 稀土铕配合物掺杂聚苯乙烯荧光微球/含铕配合物聚苯乙烯荧光微球/稀土磁性荧光微球制备
  11. 如何在Internet Explorer中使用VARCHART XGantt控件?
  12. 计算机机箱最新推出的是什么架构,独特三舱位结构:LIANLI 联力 推出 PC-O12 E-ATX 全塔机箱...
  13. 兴业银行java面试_【面经】兴业银行信息技术岗面试
  14. 热衷于摸鱼的大一新生
  15. syntax error:unterminated quoted string
  16. 微信朋友圈信息流可能采用算法排序吗?
  17. Photoshop 系列:照片调色记录
  18. iview表格表头上添加icon图标
  19. hive存储处理器(StorageHandlers)以及存储格式以及hive与hbase整合
  20. 出现network boot from intel e1000问题的解决办法

热门文章

  1. 博弈论:别人的想法(文末送书!)
  2. Linux 系统进程、线程之间的爱恨纠葛...
  3. java mysql读取多条数据_myeclipse 使用Java访问mysql数据库,数据库中有多条记录,为何只能读出一条数据??...
  4. 【转载保存】接口的压力测试工具
  5. 工程设计论——如何写好工程代码
  6. 自己动手从0开始实现一个分布式RPC框架
  7. 杭州湾跨海大桥视频上云,夯实智慧高速“云基建
  8. MaxCompute Mars 完全指南
  9. 入门云数据库Redis,满足你的高读写性能场景需求
  10. 世界冠军之路:菜鸟车辆路径规划求解引擎研发历程