博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
quartz的job中注入spring对象!
阅读量:7049 次
发布时间:2019-06-28

本文共 1372 字,大约阅读时间需要 4 分钟。

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

自定义一个类:

[java]   
 
  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]   
 
  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]   
 
    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. }  

转载于:https://www.cnblogs.com/writeLessDoMore/p/6914188.html

你可能感兴趣的文章
C#扩展方法
查看>>
移动浏览器中实现拨打电话,调用sms,发送email
查看>>
docker 搭建小型的node开发环境。
查看>>
Java第九次作业
查看>>
.Net Discovery系“.NET技术”列之-深入理解平台机制与性能影响 (中)
查看>>
1.文件重命名工具
查看>>
【java】json格式解析
查看>>
Linux开始结束ping命令
查看>>
开源一款私藏Management Studio插件,ProjkyAddin,送给所有使用SQLServer的园友们
查看>>
jQuery判断checkbox是否选中的3种方法
查看>>
LinkedList源码分析
查看>>
【算法介绍】哈希排序算法
查看>>
UpdatePanel and JQuery Plugin
查看>>
centos5.7下的kdump
查看>>
[JavaEE笔记]Cookie
查看>>
ELK+Filebeat (1)
查看>>
leetcode 443. String Compression
查看>>
在没联网环境下,启动tomcat出错
查看>>
关于Git bash-127.0.0.7:8888拒绝访问的小问题--环境变量
查看>>
有价值的数据
查看>>