欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

quartz的job实现类无法注入Service类

程序员文章站 2022-03-03 10:47:11
...

原因

Job是在quartz的框架中实例化的,service是在spring容器中创建出来的。
所以Job实现类不受spring管理,即导致注入失败。

解决方案

executeInternal方法中加入一行代码SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);就ok了

如下

@Component
public class RemindJob extends QuartzJobBean {

	private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(RemindJob.class);

	@Autowired
	private ProjectTaskService projectTaskService;

	@Override
	protected  void executeInternal(JobExecutionContext arg0)  {
		SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
		log.info("RemindJob have bean started... ");
		projectTaskService.duRemindJob();


	}

}
相关标签: quartz