Spring Schema整合Quartz_01

文章目录

          • 一、实现思路
          • 二、第一种实现方式
            • 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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Grab的实验平台进行混沌实验编排

背景 对每个用户来说&#xff0c;Grab是一个可以叫车&#xff0c;叫外卖或付款的一个APP。对工程师来说&#xff0c;Grab是一个有许多服务并通过RPC交互的分布式系统&#xff0c;有时也可以叫做微服务架构。在数千台服务器上运行的数百个服务每天都有工程师在上面进行变更。每…

c++ 麦克风 录音 wav_小米有品上线新品,手机麦克风得到史诗级加强

手机里面是自带录音功能的&#xff0c;所以很多朋友都喜欢用手机来记录会议等内容&#xff0c;但是手机自带的麦克风用来录音并不合适&#xff0c;要么声音小&#xff0c;要么录下来的都是杂音&#xff0c;难道非要买一个专用的录音笔或者麦克风吗&#xff1f;其实没有那个必要…

云+X案例展 | 民生类: “中企通信 × TutorABC”共创全球数字教育科技新里程

本案例由中企通信投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。TutorABC荣获IDC 【讯…

ESB接口调用异常汇总

文章目录一、ESB接口前置知识1. ESB接口简述2. 生成的代码组成部分二、常见的异常汇总2.1. 场景1&#xff1a;不能解析某域名2.2. 场景2&#xff1a;调用服务连接超时三、调用服务前异常3.1. 异常描述3.2. CXF相关的jar和jdk的rt.jar中冲突3.3. 异常现象3.4. 异常日志3.5. 异常…

基于实时计算(Flink)与高斯模型构建实时异常检测系统

案例与解决方案汇总页&#xff1a;阿里云实时计算产品案例&解决方案汇总 1. 概述 异常检测&#xff08;anomaly detection&#xff09;指的是对不符合预期模式或数据集&#xff08;英语&#xff1a;dataset&#xff09;中其他项目的项目、事件或观测值的识别。实际应用包括…

hive 中某个字段等于0_快速了解hive

作者丨HappyMint文章选摘&#xff1a;大数据与人工智能这是作者的第7篇文章本文主要针对从事大数据分析和架构相关工作&#xff0c;需要与hive打交道但目前对hive还没有进行深层次了解的小伙伴&#xff0c;希望本文会让你对hive有一个快速的了解。内容主要包括什么是hive、为什…

利用blink CEP实现流计算中的超时统计问题

案例与解决方案汇总页&#xff1a;阿里云实时计算产品案例&解决方案汇总 一. 背景介绍 如<利用blinkMQ实现流计算中的延时统计问题>一文中所描述的场景&#xff0c;我们将其简化为以下案例&#xff1a; 实时流的数据源结构如下&#xff1a; 物流订单号支付时间仓接…

PPT素材网

PPT素材推荐 官网&#xff1a;http://www.1ppt.com/ 背景色采用这个&#xff0c;模板才用这个 简洁微立体创业融资计划书PPT模板免费下载 http://www.1ppt.com/article/33315.html

云+X案例展 | 民生类:中国电信天翼云携手国家天文台打造“大国重器”

本案例由天翼云投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。FAST是由中国科学院国家…

阿里云TSDB在大数据集群监控中的方案与实战

目前大部分的互联网企业基本上都有搭建自己的大数据集群&#xff0c;为了能更好让我们的大数据集群更加高效安全的工作&#xff0c;一个优秀的监控方案是必不可少的&#xff1b;所以今天给大家带来的这篇文章就是讲阿里云TSDB在上海某大型互联网企业中的大数据集群监控方案中的…

linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法

对接第三方厂商需求时&#xff0c;需要对数据AES256进行解密&#xff0c;由于java本身不支持&#xff0c;需要添加依赖。 文章目录一、版本适配1. 版本对应关系2. maven仓库地址3. maven坐标二、linux jdk策略下载2.1. JDK6 jce2.2. JDK7 jce2.3. JDK8 jce三、linux jdk策略配置…

云+X案例展 | 民生类:易趋云全面提升三德科技管理效能

本案例由深圳蓝云投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。湖南三德科技股份有限…

redis 公网 安全_redis漏洞复现

一、漏洞简介什么是redisredis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/po…

实时计算的最佳实践:基于表格存储和Blink的大数据实时计算

表格存储: 数据存储和数据消费All in one 表格存储&#xff08;Table Store&#xff09;是阿里云自研的NoSQL多模型数据库&#xff0c;提供PB级结构化数据存储、千万TPS以及毫秒级延迟的服务能力。在实时计算场景里&#xff0c;表格存储强大的写入能力和多模型的存储形态&…

关于JDK8采坑JCE加密限制版本问题

文章目录一、解决方案11. 调研2. 常见的异常3. 安全性机制导致的访问https会报错4. 解决方案5. 操作流程6. 移动jar配置策略二、解决方案22.1. 声明2.2. 编辑策略文件2.3. 修改默认属性一、解决方案1 声明&#xff1a;jdk1.8已经经过线上环境使用 1. 调研 JDK8的加密策略存在…

速围观!云+X 案例评选榜单重磅出炉!

2019年11月&#xff0c;CSDN云计算强势开启“云X”案例征集活动&#xff0c;从先进性、拓展性、效益性等三个基本方向出发&#xff0c;深入展现云技术作用行业的突出优势。时隔2个月&#xff0c;通过广泛征集等方式&#xff0c;经过层层筛选&#xff0c;深入挖掘出跨行业、跨生…

uvm 形式验证_UVM基础

uvm_component与uvm_object1.几乎所有的类都派生于uvm_object&#xff0c;包括uvm_component。uvm_component有两大特性是uvm_object所没有的&#xff1a;一是通过在new的时候指定parent参数来形成一种树形的组织结构&#xff1b;二是有phase的自动执行特点。下图是常用的UVM继…

Table Store: 海量结构化数据实时备份实战

Table Store: 海量结构化数据实时备份实战 数据备份简介 在信息技术与数据管理领域&#xff0c;备份是指将文件系统或数据库系统中的数据加以复制&#xff0c;一旦发生灾难或者错误操作时&#xff0c;得以方便而及时地恢复系统的有效数据和正常运作。在实际备份过程中&#xf…

云+X案例展 | 电商零售类:云徙助力良品铺子「双11」

本案例由云徙投递并参与评选&#xff0c;CSDN云计算独家全网首发&#xff1b;更多关于【云X 案例征集】的相关信息&#xff0c;点击了解详情丨挖掘展现更多优秀案例&#xff0c;为不同行业领域带来启迪&#xff0c;进而推动整个“云行业”的健康发展。助力品牌制胜双十一的背后…

同样做前端,为何差距越来越大?

阿里妹导读&#xff1a;前端应用越来越复杂&#xff0c;技术框架不断变化&#xff0c;如何成为一位优秀的前端工程师&#xff0c;应对更大的挑战&#xff1f;今天&#xff0c;阿里前端技术专家会影结合实际工作经验&#xff0c;沉淀了五项重要方法&#xff0c;希望能对你的职业…