解决quartz的job无法注入spring对象

一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类。

自定义一个类:

[java] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. public class JobFactory extends AdaptableJobFactory {  
  2.       
  3.     @Autowired  
  4.     private AutowireCapableBeanFactory capableBeanFactory;  
  5.   
  6.     @Override  
  7.     protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {  
  8.         //调用父类的方法  
  9.         Object jobInstance = super.createJobInstance(bundle);  
  10.         //进行注入  
  11.         capableBeanFactory.autowireBean(jobInstance);  
  12.         return jobInstance;  
  13.     }  
  14.       
  15. }  
然后在spring中配置:

[html] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. <!-- 定时任务的factorybean,配置其他config -->  
  2.     <bean id="jobFactory" class="com.xx.job.JobFactory"></bean>  
  3.     <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  4.         <property name="jobFactory" ref="jobFactory"></property>  
  5.     </bean>  

这时候,我们在定义类继承job的时候,就可以使用autowired注入service对象了:

[java] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. public class Test1Job implements Job {  
  2.     public final Logger log = Logger.getLogger(this.getClass());  
  3.       
  4.     @Autowired  
  5.     private JobTaskService jobTaskService;  
  6.       
  7.     public void execute(JobExecutionContext context) throws JobExecutionException {  
  8.         //更新上一次执行时间和下一次计划执行时间  
  9.         Date nextProcessTime = context.getNextFireTime();  
  10.         ScheduleJob job = (ScheduleJob) context.getJobDetail().getJobDataMap().get("scheduleJob");  
  11.         job.setNextProcessTime(nextProcessTime);  
  12.         jobTaskService.updateTaskByJobName(job);  
  13.           
  14.         //业务逻辑  
  15.         System.out.println("22222222222222222222:");  
  16.     }  
  17. }  

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

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

相关文章

谷歌Chrome浏览器如何开启无痕模式 Chrome浏览器无痕模式开启方法

在访问一些特殊网站时&#xff0c;许多人都会开启浏览器自带的无痕模式&#xff0c;以免除一些不必要的麻烦。那么&#xff0c;谷歌Chrome浏览器要如何开启无痕模式呢?不清楚操作方法的朋友&#xff0c;不妨参考一下小编分享的Chrome浏览器无痕模式开启方法。 方法步骤 点击…

搜狗浏览器怎么实现图标旋转 搜狗浏览器实现图标旋转的方法

搜狗浏览器是一款大家经常使用的浏览器&#xff0c;你到知道搜狗浏览器中有一个非常有趣的功能就是图标旋转&#xff0c;那你知道在搜狗浏览器是怎么实现图标旋转的吗?接下来我们呢一起往下看看搜狗浏览器实现图标旋转的方法吧。 方法步骤 1、打开搜狗浏览器动态图标插件的下…

AngularJS+Jersey下载excel

AngularJS代码&#xff1a; $scope.testDownload function () { $http.post("rest/excel/down", $scope.req, {responseType:arraybuffer}).success(function (data) { varblob new Blob([data], {type:"application/vnd.ms-excel"}); varfileName "…

火狐浏览器摄像头权限怎么开启 火狐浏览器摄像头权限开启的方法

火狐浏览器是我们大家经常使用的浏览器之一&#xff0c;在使用这款浏览器的过程有时候需要使用到摄像头&#xff0c;那你知道火狐浏览器摄像头权限怎么开启的吗?接下来我们一起往下看看火狐浏览器摄像头权限开启的方法吧。 方法步骤 1、打开火狐浏览器&#xff0c;点击右上角…

Activiti 基础概念

1、ProcessInstance 与ProcessDefinition 流程实例&#xff08;ProcessInstance&#xff09;和流程定义&#xff08;ProcessDefinition&#xff09;的关系&#xff0c;与类和实例对象的关系有点像&#xff0c;ProcessDefinition是整个流程步骤的说明而ProcessInstance就是指流程…

优酷视频如何修改账号密码?

一.pc端&#xff1a;您能够立即登陆【点一下这儿】密码重置哦~或是能够按下列方式实际操作哦。 1.登陆本站&#xff0c;网页页面最上边【登陆】功能键&#xff0c;登陆界面右下角点一下【密码忘了】。 优酷视频如何修改账号密码&#xff1f; 2.请输入的手机上/电子邮箱&…

MD5加密工具类

这是一个个人认为非常好用的使用MD5salt加密的工具类&#xff0c;一部分代码由网上搜索而得&#xff0c;一部分自己修改添加之后而得。使用这个工具类&#xff0c;非常简单&#xff0c;从前台拿到密码passwd&#xff0c;直接HexUtil.getEncryptedPwd(passwd)就可以返回一个长度…

win7系统笔记本电脑开机蓝屏怎么办

我们在使用电脑的时候难免不了会y遇到一些问题&#xff0c;比如电脑蓝屏或者黑屏的情况出现&#xff0c;就有一位win7系统用户遇到了笔记本电脑开机蓝屏的情况&#xff0c;win7系统笔记本电脑开机蓝屏怎么办?就此问题&#xff0c;让我们一起来聊聊windows7笔记本电脑开机蓝屏解…

回调函数中window.open()被拦截

在回调函数中window.open默认是会被拦截的&#xff0c;因为浏览器判断它不是用户自己打开的&#xff0c;存在安全风险&#xff0c;所以可以伪造一个用户点击事件来避开&#xff0c;代码如下&#xff1a; function newWindow(url, id) { var a document.createElement(a); a.se…

Win7电脑定时关机怎么设置

想必大家一定有遇到过这样的烦恼吧&#xff0c;电脑文件下载到一半或传输到一半的时候&#xff0c;而你有事需外出&#xff0c;关机吧太可惜了&#xff0c;不关机吧又浪费电&#xff0c;还会影响电脑的使用寿命&#xff0c;那么该如何是好呢?这时候选择电脑定时关机是最好的解…

Joda-Time几个用法小记

1, 获取每天的零点 DateTime dtnew DateTime().withMillisOfDay(0); System.out.println(dt.toString("yyyy-MM-dd HH:mm:ss"));//结果 2016-09-09 00:00:00 2, 在每天的6:30处理一些东西 DateTime dtnew DateTime().withHourOfDay(6).withMinuteOfHour(30).withSe…

win7系统找不到我的电脑图标的应对办法

我们在使用win7系统电脑的过程中或多或少都会遇到一些问题&#xff0c;最近有用户表示自己在使用电脑时发现我的电脑图标不见了&#xff0c;怎么显示我的电脑图标?针对用户提出的问题&#xff0c;今天小编就和大家分享一下win7系统找不到我的电脑图标的应对办法&#xff0c;大…

浏览器中播放rtsp(不依赖vlc插件)

之前是通过vlc插件来显示rtsp流视频&#xff0c;但是限制很多&#xff1a;1.要安装vlc的插件2.插件目前只支持ie&#xff0c;像chrome在46版本之后根本就无法使用&#xff0c;于是上网搜索得出rtsp->rtmp->videoJS这样的一个方案&#xff0c;具体流程如下&#xff1a; 一…

腾讯视频中如何把视频进行收藏

在线观看视频的时候&#xff0c;把喜欢的视频收藏下来&#xff0c;可以方便以后再看。腾讯视频如何进行收藏呢? 腾讯下载视频怎么转格式_腾讯视频中如何把视频进行收藏 1、找到桌面上的快捷方式&#xff0c;双击打开程序 腾讯下载视频怎么转格式_腾讯视频中如何把视频进行收…

IP地址开启https

证书生成导入 keytool -genkey -alias ssozzjz5 -keyalg RSA -keysize 1024 -keypass 123456 -storepass 123456 -dname "CN192.168.1.128,OUcsoa,Ocsoa,LFZ,STFZ,CCN" -ext sanip:192.168.1.128 -validity 3600 -keystore D:\ssozzjz5.keystorekeytool -export -f…

搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤

搜狗浏览器中如何删除自带工具?最近有小伙伴问我想要删除搜狗浏览器中的自带工具不知道该怎么办&#xff0c;今天小编就给大家带来删除搜狗浏览器中自带工具的方法步骤&#xff0c;让我们一起来看看吧。 方法/步骤 1、我们需要先打开搜狗浏览器&#xff0c;选择右上角的工具…

ElasticSearch里面关于日期的存储方式,解决差8个小时

在ElasticSearch里面最常用的就是时间字段了&#xff0c;经常会在群里看到一些小伙伴提出有关时间的问题&#xff0c;为什么es查询的时间跟我实际看到的时间差8个小时呢。如果我们了解了ElasticSearch底层的时间存储方式就会比较容易的理解这个问题。 下面散仙先普及下时区的知…

谷歌浏览器如何收藏网站 谷歌浏览器收藏网站的方法步骤

谷歌浏览器如何收藏网站?当我们在使用谷歌浏览器想要收藏网站应该怎么办呢?今天小编就给大家带来谷歌浏览器收藏网站的具体方法步骤&#xff0c;让我们一起来看看吧。 方法/步骤 1、我们需要先在谷歌浏览器中随便打开一个网站; 2、然后我们在谷歌浏览器网址输入栏的最右边…

syslog发送日志而docker容器接收不到的问题

syslog支持"udp", "tcp", "unix_syslog", "unix_socket"协议 ,所以要判断其到底使用了什么端口类型 logstash:image: zzjz/logstash:6.2.2container_name: logstashrestart: alwaysports:- 10010:10010- 10011:10011- 10012:10012- 1…

IE浏览器网页无法缩放怎么办 解决IE浏览器网页无法缩放的方法

IE浏览器网页无法缩放怎么办?我们在使用IE浏览器浏览网页的时候&#xff0c;想要缩放网页&#xff0c;却发现无法缩放。该怎么解决这个问题?下面就是解决IE浏览器网页无法缩放的方法&#xff0c;一起来看看吧! 今天使用了一下IE浏览器&#xff0c;发现无法对缩放比例进行调整…