如何在quartz的job中实现spring的依赖注入

原创 2015年07月08日 14:19:05

quarz的job通常会依赖业务对象执行操作,通常这些业务对象可以在job初始化时通过dataMap传入,但是在采用数据库持久化Job的模式下,这些业务对象会被持久化,所以需要对业务对象进行序列化操作,但由于很多业务对象无法进行序列化,所以持久化的过程就会报错。
如果能够在job中实现业务对象的依赖注入就能避开上面的问题,那么如何实现呢?

下面这种方式就可以轻松实现:
只需要在Job的execute方法中加入SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this)即可

示例如下:

@Component
public class DataMigrationJob implements Job {

    @Autowired
    private DataMigrationService dataMigrationService;

    public static final Logger logger = LoggerFactory.getLogger(DataMigrationJob.class);

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        // 使得job对象可以通过注解实现依赖注入
        SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

        CronTaskRequestBO migrationInfo = (CronTaskRequestBO) jobExecutionContext.getMergedJobDataMap().get("migrationInfo");
        DataMigrationRequestBO request = getDataMigrationRequestBO(migrationInfo);
        logger.info("start migration task");
        dataMigrationService.startMigration(request);
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring 整合 Quartz 实现动态定时任务(附demo)

最近项目中需要用到定时任务的功能,虽然Spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大。在考虑之后,决定整合更为专业的Quartz来实现定时任务功能。普通定时任务首先,当...

Spring整合Quartz(JobDetailBean方式)

Spring整合Quartz(JobDetailBean方式) 发表于2年前(2014-01-16 17:58)   阅读(11910) | 评论(1) 14人收藏此文章, 我要收藏 赞0...

spring3.1.2整合quartz2.2.2 maven管理依赖

spring3.1.2整合quartz2.2.2 maven管理依赖 在spring配置文件,

如何实现Spring依赖注入 AOP.rar

  • 2008年09月18日 09:39
  • 34KB
  • 下载

单独使用Quartz 2.1.7 时Job属性Spring无法注入

在使用Quartz的时候遇到一个问题: 原因: 当前使用的是Spring-Quartz,xml配置,但是Job太多,导致很多的xml配置 目的: 不使用spring-quartz的配置,单独使...

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

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

quartz的job类无法保留本身通过spring注入的属性问题

现在有一个应用需要定时做一些动作,使用的是quartz+spring,但是没有使用spring实现的quartz,这里发现了一个问题,就是通过spring注入进来的bean用于做为quartz的job...

Spring整合Quartz 实现定时job任务

接触定时轮循任务也有半年了,也不太常用,就记录下来做个备注,今天重新搭建的环境,一步步从头来,又发现几点新东西。实现定时轮循的 方式有两种,一种是用:MethodInvokingJobDetai...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在quartz的job中实现spring的依赖注入
举报原因:
原因补充:

(最多只允许输入30个字)