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

自定义一个类:

[java] view plaincopy
  1. public class JobFactory extends AdaptableJobFactory {
  2. @Autowired
  3. private AutowireCapableBeanFactory capableBeanFactory;
  4. @Override
  5. protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
  6. //调用父类的方法
  7. Object jobInstance = super.createJobInstance(bundle);
  8. //进行注入
  9. capableBeanFactory.autowireBean(jobInstance);
  10. return jobInstance;
  11. }
  12. }

然后在spring中配置:

[html] view plaincopy
  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
  1. public class Test1Job implements Job {
  2. public final Logger log = Logger.getLogger(this.getClass());
  3. @Autowired
  4. private JobTaskService jobTaskService;
  5. public void execute(JobExecutionContext context) throws JobExecutionException {
  6. //更新上一次执行时间和下一次计划执行时间
  7. Date nextProcessTime = context.getNextFireTime();
  8. ScheduleJob job = (ScheduleJob) context.getJobDetail().getJobDataMap().get("scheduleJob");
  9. job.setNextProcessTime(nextProcessTime);
  10. jobTaskService.updateTaskByJobName(job);
  11. //业务逻辑
  12. System.out.println("22222222222222222222:");
  13. }
  14. }

解决quartz的job无法注入spring对象相关推荐

  1. Quartz业务类无法注入Spring对象问题

    tags: 解决错误, titile: Quartz业务类无法注入Spring对象问题 Quartz业务类无法注入Spring对象问题 在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那 ...

  2. java多线程中注入Spring对象问题

    web应用中java多线程并发处理业务时,容易抛出NullPointerException. 原因: 线程中的Spring Bean没有被注入.web容器在启动时,没有提前将线程中的bean注入,在线 ...

  3. java 多线程bean 注入_java多线程中注入Spring对象问题

    信息加密之Base64 Base64是一种最简单的简单的加密形式,经常被使用,记录一下,以便日后可以深入了解. jdk格式: //获得密钥Base64Encoder encoder = new Bas ...

  4. spring boot整合Quartz 在Job类中注入其他对象报空指针异常java.lang.NullPointerException at com.sxt.quartz.QuartzDemo.e

    情况在Job 类中注入RedisTemplate 报空指针异常 原因:我们使用JobDetailFactoryBean 帮我们创建对象 实际上调用的是AdaptableJobFactory 下的这个方 ...

  5. service注入为null_如何解决quartz调度时候,job中的service为null的问题?

    在需要用到调度任务的时候,发现job中的通过依赖注入的service对象为null.如下: @Component public class ExpiredOrderJob implements Job ...

  6. Spring详解:WebServlet 中不能注入Bean对象

    1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...

  7. 在不受Spring管理的类中注入spring 管理的对象

    前几天在做一个任务时,需要在一个普通的java类(不受Spring管理的类)中,调用 spring data jpa的某个xxxReponsitory 接口,同时需要读取properties 文件中的 ...

  8. Java反射生成对象注入spring(结合工厂模式)

    利用工厂模式进行代码扩展,而不用修改原来代码.在配置文件配置要生成的类,通过反射交由工厂生成对象,并将此对象交给spring管理,在项目中遇到此问题并予以解决,做一下记录. package cn.ea ...

  9. Spring Boot集成Quartz注入Spring管理的类

    摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...

最新文章

  1. 识别字符串是否为数字
  2. gtp怎么安装系统_UEFI+GTP模式下使用GHO文件安装WIN7或WIN8系统图文教程详解
  3. 关于Unity的协程
  4. Android.mk解析
  5. vue在微信里面的兼容问题_vuejs在安卓系统下微信X5内核这个兼容性问题如何破?...
  6. boost::get_property用法的测试程序
  7. 春招已近,这份GitHub万星的ML算法面试大全请收下
  8. C++中的两个知识点
  9. 《CCNA网络技术学习指南》-命令版
  10. 中点和中值滤波的区别_【传感器融合】扩展卡尔曼滤波的逐步理解与实现(上)...
  11. 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选
  12. MySQL 升级--1
  13. Bonjour 服务
  14. 用层次分析法建模解决交通问题论文
  15. SQL 报错:聚合函数无法与其他非分组字段混用
  16. 关于使用github布置定时任务给别人哟
  17. kong翻译_Kong[孔]的中文翻译及英文名意思
  18. Android仿微信聊天界面布局
  19. sapvl10a增强_教你搞定SAP屏幕增强
  20. 跨专业的我如何拿到微软offer

热门文章

  1. 现代控制会用到python嘛_Python 流程控制
  2. centos默认安装mysql_centos6.x默认安装mysql5.7
  3. 进度条设置_为你的练习设置进度条
  4. java awt 按钮响应_Java AWT按钮
  5. Java FilePermission getActions()方法与示例
  6. 数字图像处理图像反转的实现_使用8086微处理器反转16位数字
  7. wfm扩展_WFM的完整形式是什么?
  8. c# datetime._C#| DateTime.GetHashCode()方法与示例
  9. stl取出字符串中的字符_在C ++ STL中使用比较运算符比较两个字符串
  10. Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」