`

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

阅读更多

原因

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();


	}

}
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics