解决quartz的job无法注入spring对象
一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类。
自定义一个类:
- public class JobFactory extends AdaptableJobFactory {
- @Autowired
- private AutowireCapableBeanFactory capableBeanFactory;
- @Override
- protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
- //调用父类的方法
- Object jobInstance = super.createJobInstance(bundle);
- //进行注入
- capableBeanFactory.autowireBean(jobInstance);
- return jobInstance;
- }
- }
然后在spring中配置:
- <!-- 定时任务的factorybean,配置其他config -->
- <bean id="jobFactory" class="com.xx.job.JobFactory"></bean>
- <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="jobFactory" ref="jobFactory"></property>
- </bean>
这时候,我们在定义类继承job的时候,就可以使用autowired注入service对象了:
- public class Test1Job implements Job {
- public final Logger log = Logger.getLogger(this.getClass());
- @Autowired
- private JobTaskService jobTaskService;
- public void execute(JobExecutionContext context) throws JobExecutionException {
- //更新上一次执行时间和下一次计划执行时间
- Date nextProcessTime = context.getNextFireTime();
- ScheduleJob job = (ScheduleJob) context.getJobDetail().getJobDataMap().get("scheduleJob");
- job.setNextProcessTime(nextProcessTime);
- jobTaskService.updateTaskByJobName(job);
- //业务逻辑
- System.out.println("22222222222222222222:");
- }
- }
解决quartz的job无法注入spring对象相关推荐
- Quartz业务类无法注入Spring对象问题
tags: 解决错误, titile: Quartz业务类无法注入Spring对象问题 Quartz业务类无法注入Spring对象问题 在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那 ...
- java多线程中注入Spring对象问题
web应用中java多线程并发处理业务时,容易抛出NullPointerException. 原因: 线程中的Spring Bean没有被注入.web容器在启动时,没有提前将线程中的bean注入,在线 ...
- java 多线程bean 注入_java多线程中注入Spring对象问题
信息加密之Base64 Base64是一种最简单的简单的加密形式,经常被使用,记录一下,以便日后可以深入了解. jdk格式: //获得密钥Base64Encoder encoder = new Bas ...
- spring boot整合Quartz 在Job类中注入其他对象报空指针异常java.lang.NullPointerException at com.sxt.quartz.QuartzDemo.e
情况在Job 类中注入RedisTemplate 报空指针异常 原因:我们使用JobDetailFactoryBean 帮我们创建对象 实际上调用的是AdaptableJobFactory 下的这个方 ...
- service注入为null_如何解决quartz调度时候,job中的service为null的问题?
在需要用到调度任务的时候,发现job中的通过依赖注入的service对象为null.如下: @Component public class ExpiredOrderJob implements Job ...
- Spring详解:WebServlet 中不能注入Bean对象
1. 前言 最近在研究Spring IOC.AOP以及和Mybatis整合的时候发现在Spring中使用Servlet+Service+Dao(Mybatis)的时候,发现在Controller层也就 ...
- 在不受Spring管理的类中注入spring 管理的对象
前几天在做一个任务时,需要在一个普通的java类(不受Spring管理的类)中,调用 spring data jpa的某个xxxReponsitory 接口,同时需要读取properties 文件中的 ...
- Java反射生成对象注入spring(结合工厂模式)
利用工厂模式进行代码扩展,而不用修改原来代码.在配置文件配置要生成的类,通过反射交由工厂生成对象,并将此对象交给spring管理,在项目中遇到此问题并予以解决,做一下记录. package cn.ea ...
- Spring Boot集成Quartz注入Spring管理的类
摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...
最新文章
- 识别字符串是否为数字
- gtp怎么安装系统_UEFI+GTP模式下使用GHO文件安装WIN7或WIN8系统图文教程详解
- 关于Unity的协程
- Android.mk解析
- vue在微信里面的兼容问题_vuejs在安卓系统下微信X5内核这个兼容性问题如何破?...
- boost::get_property用法的测试程序
- 春招已近,这份GitHub万星的ML算法面试大全请收下
- C++中的两个知识点
- 《CCNA网络技术学习指南》-命令版
- 中点和中值滤波的区别_【传感器融合】扩展卡尔曼滤波的逐步理解与实现(上)...
- 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选
- MySQL 升级--1
- Bonjour 服务
- 用层次分析法建模解决交通问题论文
- SQL 报错:聚合函数无法与其他非分组字段混用
- 关于使用github布置定时任务给别人哟
- kong翻译_Kong[孔]的中文翻译及英文名意思
- Android仿微信聊天界面布局
- sapvl10a增强_教你搞定SAP屏幕增强
- 跨专业的我如何拿到微软offer
热门文章
- 现代控制会用到python嘛_Python 流程控制
- centos默认安装mysql_centos6.x默认安装mysql5.7
- 进度条设置_为你的练习设置进度条
- java awt 按钮响应_Java AWT按钮
- Java FilePermission getActions()方法与示例
- 数字图像处理图像反转的实现_使用8086微处理器反转16位数字
- wfm扩展_WFM的完整形式是什么?
- c# datetime._C#| DateTime.GetHashCode()方法与示例
- stl取出字符串中的字符_在C ++ STL中使用比较运算符比较两个字符串
- Redis都不懂?就别去面试了!聊聊我的Redis新专栏「视频版」