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.g