千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  quartz定时组件的简单使用

quartz定时组件的简单使用

来源:千锋教育
发布人:lxl
时间: 2023-03-07 15:24:31

  一. 前言

  最近有毕业学员问,说在面试的时候,被问到了定时组件的使用,这位学员一脸懵逼,他竟然不知道实现定时组件的技术有哪些。其实实现定时功能的技术繁多,比如cron4j、SpringTask、Quartz等。当然我们大可不必学习所有的定时组件,只需要根据公司的实际情况,学习某一个定时组件的基本功能,根据业务合理运用,实现相关功能即可。

quartz定时组件的简单使用

  二. quartz的使用

  今天就以quartz定时组件为例,来给大家简单讲解定时组件的基本使用。本次咱们先抛砖引玉,对quartz的使用有个基本的了解,好了,我们废话不多说,直接来盘它!

  三. 搭建工程

  今天我们基于原生的SSM环境来实现quartz定时组件的开发,虽然XML的配置方式比较繁琐,但配置思路却比较清晰,让人一看就一目了然,对新手而言易于理解。

  1.搭建Spring工程,引入依赖

  我们先创建一个maven工程,将所需要用到的依赖全部拷贝至pom.xml中。

quartz定时组件的简单使用

  •   Spring-context 是Spring的核心依赖,我们一般要在Spring环境中使用quartz,所以我们需要先导入spring的核心依赖包。
  •   quartz quartz-job 这两个依赖是我们使用的quartz组件核心依赖。

  2.创建spring配置文件

  接着创建一个applicationContext.xml文件,并进行相关的配置。

quartz定时组件的简单使用

  2.1 MethodInvokingJobDetailFactoryBean

  然后我们需要定义一个类,然后在这个类里面定义一个需要被定时执行的方法。在quartz中,这个方法的执行是交给一个job执行的工厂bean的。所以我们需要配置这个工厂bean。

  •   工厂bean内部配置targetObject属性。这个属性的值引用了我们需要被任务调度的那个bean。
  •   targetMethod: 目标方法。就是我们具体被任务调度的方法。

  2.2 CronTriggerFactoryBean

  根据中文意思,这是一个任务调度工厂的触发器。我们工厂里面定义的目标方法如何执行,就是需要被这个触发器触发并执行的。这个bean的内部有两个属性:

  •   jobDetail 真正需要被触发器触发的任务调度bean。
  •   cronExpression 触发器执行需要遵循的时间规则。

  关于cron表达式,我们可以参照一个在线网站去编写,http://cron.qqe2.com/

  2.3 SchedulerFactoryBean

  SchedulerFactoryBean是任务调度工厂bean,我们的触发器如果要执行的话,需要在SchedulerFactoryBean里面进行相关配置。通过配置文件,我们发现在内部配置了任务调度触发器的集合。这里为什么是集合呢?因为我们的任务调度触发器可能需要多个,也就是可能会有多个任务需要调度,这就是我们使用List指定触发器的原因。

  3.创建任务调度类

  然后再创建一个类,编写一个执行方法。

quartz定时组件的简单使用

  4.测试

  接着编写测试类,初始一个IoC容器。

quartz定时组件的简单使用

  5.代码结构

  最后完整的代码结构如下图所示:

quartz定时组件的简单使用

  6.启动运行

  当我们把项目启动后,执行结果如下图所示:

quartz定时组件的简单使用

  好啦,到这里我们就简单演示了quartz的基本使用,希望对新手小伙伴能有所帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>