quartz定时器依赖_JAVA使用quartz添加定时任务,并依赖注入对象操作

最近在写定时任务,以前没接触过。查了些相关资料说使用quartz定时框架。

需要配置文件:config-quartz.xml

相关配置如下(红色部分是之后添加的,在后面步骤会说明):

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task-3.0.xsd">

quartz.properties

#============================================================================

# Configure Main Scheduler Properties

#============================================================================

org.quartz.scheduler.instanceName = WrhFrameScheduler

org.quartz.scheduler.instanceId = AUTO

org.quartz.scheduler.skipUpdateCheck = true

#============================================================================

# Configure ThreadPool

#============================================================================

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 12

org.quartz.threadPool.threadPriority = 5

#============================================================================

# Configure JobStore

#============================================================================

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

#org.quartz.jobStore.useProperties = false

#org.quartz.jobStore.dataSource = myDS

#org.quartz.jobStore.tablePrefix = QRTZ_

#org.quartz.jobStore.isClustered = false

#============================================================================

# Configure Datasources

#============================================================================

#org.quartz.dataSource.myDS.driver = org.postgresql.Driver

#org.quartz.dataSource.myDS.URL = jdbc:postgresql://localhost/dev

#org.quartz.dataSource.myDS.user = jhouse

#org.quartz.dataSource.myDS.password =

#org.quartz.dataSource.myDS.maxConnections = 5

最后spring-mvc.xml配置文件中奖quartz.xml文件引入即可:

然后写测试类开始测试定时任务:

package com.wy.care60.job;

import com.wy.care60.dao.MElementMapper;

import com.wy.care60.dao.MInterEnumMapper;

import com.wy.care60.dao.MProjectMapper;

import com.wy.care60.model.MInterEnum;

import com.wy.care60.model.MProject;

import org.apache.tools.ant.Project;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.scheduling.quartz.QuartzJobBean;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

/**

* Created by Administrator on 2017/12/20.

*/

@Component

public class HealthPlanJob extends QuartzJobBean {

@Autowired

MProjectMapper mProjectMapper;

@Override

public void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {

System.out.println(new Date());

}

}

发现时间可以打印出来,证明定时任务成功开启;但是同时也发现了一个问题,就是依赖注入的 mProjectMapper值为null。

开始以为是Spring的原因,导致注解失败,后来查了相关资料发现,不是Spring的原因,而是因为:这个Job是由quartz实例化出来的,不受Spring的管理,所以就导致注入失败。解决办法是自己new一个类,让Spring实例化这个类,代码如下

import org.quartz.spi.TriggerFiredBundle;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.config.AutowireCapableBeanFactory;

import org.springframework.scheduling.quartz.AdaptableJobFactory;

public class MyJobFactory extends AdaptableJobFactory {

@Autowired

private AutowireCapableBeanFactory capableBeanFactory;

protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {

//调用父类的方法

Object jobInstance = super.createJobInstance(bundle);

capableBeanFactory.autowireBean(jobInstance);

return jobInstance;

}

}

然后把这个类配置到Spring中去,(config-quartz.xml中红色部分)

然后在把org.springframework.scheduling.quartz.SchedulerFactoryBean的jobFactory设置成我们自己的。(config-quartz.xml中红色部分)

config-quartz.xml完整版如下:

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.2.xsd

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task-3.0.xsd">

到这为止,成功!

以上这篇JAVA使用quartz添加定时任务,并依赖注入对象操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

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

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

相关文章

计算机一级b需要学哪些,希望通过江苏省计算机一级B考试的同学千万要看哦!江苏省计算机一级B理论复习资料(绝密资料)...

省一级B理论49、算法的基本性质包括确定性、有穷性、能行性、输出、(输入)50、算法是问题求解规则的一种过程描述。51、用机器语言编写的程序在计算机上可直接运行52、求解可计算问题的程序框架都可用顺序、选择和重复三种控制成分来描述。53、程序设计语言可划分为机器语言、汇…

深信服上网行为管理开启snmp_编写SHELL脚本在CACTI中来实现监控深信服上网行为管理的CPU和内存使用情况...

一、深信服上网行为管理中的SNMP设置二、在CACTI中编写SHELL脚本如下:cpu oid: .1.3.6.1.4.1.35047.1.3内存 oid: .1.3.6.1.4.1.35047.1.4在线用户数oid: .1.3.6.1.4.1.35047.2.1.1.1.0会话数oid: .1.3.6.1.4.1.35047.2.1.1.6.0先编写监控CPU的脚本vim ac.sh#! /bin…

同一个网络中为什么有些计算机可以连接共享打印机,有些需要输入密码,安装局域网共享打印机时,要求输入用户和密码,但对方并没有设置,为什么?谢谢!!...

2006-07-20 回答有的需要,有的不需要如若不需要,则需;windows xp3方法:1、确保你装有打印机的电脑与其他需要打印的电脑已经联网(必须在同一个局域网中、具有相同的子网号和子网掩码)2、开启打印机和文件共享服务:在网…

centos路由查看命令_CentOS下使用Route命令添加路由

方法一添加路由:route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 192.168.0.1删除路由:route del -net 192.168.0.0/24 gw 192.168.0.1add 增加路由del 删除路由-net 设置到某个网段的路由-host 设置到某台主机的路由gw 出…

计算机科学与技术博士论文,计算机科学与技术系博士学位论文答辩.PDF

计算机科学与技术系博士学位论文答辩计算机科学与技术系计算机科学与技术系博士学位论文答辩博士学位论文答辩计算机科学与技术系计算机科学与技术系博士学位论文答辩博士学位论文答辩可满足性问题的算法设计与分析可满足性问题的算法设计与分析可满足性问题的算法设计与分析可…

dbscan算法python实现_挑子学习笔记:DBSCAN算法的python实现

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法,是一种基于高密度连通区域的、基于密度的聚类算法,能够将具有足够高密度的区域划分为簇(Cluster),并在具有噪声的数据中发现任意形状的簇。DBSCAN算法通过距离…

计算机怎么应用最小二乘法作图,最小二乘法应用

最小二乘法的数据处理一、引言在实际的工程或者实验中,误差处理和数据的统计是一项必备的过程,处理误差和数据统计的结果与否关系到这项工程最后的结果是否达到预计的要求,所测量数据的实际值和理论值是否接近,关系到工程最后质量…

latex 分行 表格标题过长_Latex 表格内文字过长自动换行 表格内单元格内容强制换行...

\usepackage{array}\begin{tabular}{m{5cm}}或者\begin{tabular}{p{0.9\columnwidth}}[LaTex]表格内单元格内容强制换行multirowmultirow 宏包提供了 \multirow 命令可以在表格中排版横跨两行以上的文本。命令的格式如下:\multirow{nrows}[bigstructs]{width}[fixup…

9月份计算机应用基础统考,2018年9月计算机应用基础统考题库-网考计算机应用基础真题1...

一、单选题1.第一台电子计算机是1946年在美国研制成功的,该机的英文缩写名是______。A.ENIACB.EDVACC.EDSACD.MARK答案:A知识点:理论基础\计算机的基本概念\计算机的发展\计算机的诞生2.计算机的通用性使其可以求解不同的算术和逻辑问题&…

java word 转换 图片_怎样把手机上的图片转换成word?

在当今这个快速发展的时代,人手一部手机是件很正常的事,小编的手机上往往会存有许多喜欢的文字图片,可是那么多的图片又会占用很多手机的空间,这样就有些不好了。庆幸的是最近小编学习到一个可以将手机上的图片转化成文字的技巧&a…

uic计算机科学与技术,北京师范大学-香港浸会大学联合国际学院UIC理工科技学部高招网...

马真真计算机科学与技术专业,现于美国南加州大学攻读硕士学位想想当初报考UIC的时候是冲着网上一个学长说的“如果你想要学习,那么来UIC绝对不会后悔”,现在毕业了,发现,确实如此。四年,学习了方方面面的知识&#xff…

应付账款账龄分析模板_6万字长文剖析宁德时代(三):财务分析

本文为《6万字长文剖析宁德时代》的第三篇。本文来自微信公众号: 凯昇资本(ID:gh_9c57a4031683),头图来自:视觉中国在《6万字长文剖析宁德时代(一):核心技术》和《6万字长文剖析宁德时代(二):市场分析》中我…

阜阳市乡镇企业中专学校计算机教师高翱简介,2017年中南林业科技大学博士研究生奖助学金...

类似问题答案2020年中南林业科技大学博士研究生奖助学金奖助学金 为提高研究生待遇水平,保障研究生安心学习、潜心研究,我校统筹财政投入、科研经费、学费收入等各种资源,设立研究生国家奖学金、学业奖学金、单项奖学金等多种奖学金&#xff…

开发db文件_Swoole高效跟传统的web开发有什么区别?life

一、swoole的运行模式Swoole高效跟传统的web开发有什么区别,除了传统的LAMP/LNMP同步开发模式,swoole的异步开发模式是怎么样的。我的官方群点击此处。获取更多的swoole学习资料以及视频源码笔记。程序猿的生活:面试12家公司,收获…

计算机设备操作与讲解,计算机组成与操作系统简介

计算机的五大组成部分控制器、运算器、存储器、输入设备、输出设备控制器:是计算机的指挥系统,负责控制计算机其他硬件的工作运算器:负责数学运算与逻辑运算控制器运算器CPU》人的大脑存储器内存优点:存取速度快缺点:断…

360网络修复工具_Win10网络图标不见了解决方法

经常有网友反馈,电脑桌面右下角的网络图标不见了,有时候想要对网络进行相关设置,而找不到入口。下面以最新的系统为例,谈谈Win10网络图标不见了的原因与解决办法。Win10网络图标不见了怎么办?如果仅仅是桌面右下角找不…

计算机课中初中一年级学生特点分析,初中信息技术说课稿:计算机的组成

初中信息技术说课稿《计算机的组成》首先非常感谢我们学校我这个机会,今天能和全镇的信息技术权威坐到一起,我感到无比的荣幸。下面我将从以下8个方面来阐述我的这节课,不当之处,还请各位专家多多批评指正。一、教材分析计算机是初…

c语言使用未初始化的内存怎么解决_C语言快速入门——数组与调试进阶

由ASCII码表的输出程序,我们可以认识到使用循环语句处理一组连续的数据有着巨大的优势。在更普遍的情况下,数据由一组离散的数值组成,如一组学生的考试成绩。对于这些数据的处理,有效的方式是使用循环。但前提是数据可以在循环中有序的访问。ASCII码表输出程序中,循环变量…

计算机七个计算原理,计算机组成原理计算题(7页)-原创力文档

计算题:【第三章】交叉方式的片选方法,交叉方式的地址分配,交叉存取度的概念,交叉存储器的带宽的计算多模块交叉存储器采用低位地址做偏选。模块存取一个字的存储周期为T ,总线传送时间为 t ,存储器的交叉模块数为m&am…

从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...

这个国庆档,国产动画在内容市场上的存在感比想象中更加有分量。电影市场上,动画IP电影《姜子牙》完成票房领跑,掀起观影热潮;动画番剧市场上,头部IP动画《全职高手》第二季时隔三年重磅回归——“这是在过年&#xff0…