JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job.getClass());//任务名,任务组,任务执行类
jobDetail.getJobDataMap().put("myJob", job);
报空指针原因是 在此job执行类为new的新类,所以不能传参
当把job放到Map中 之后去取就可以很好的解决这个问题了
@Autowired
public TestService test;
public void execute(JobExecutionContext context) throws JobExecutionException {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);//在定时器中支持注解
WorkJob job = (WorkJob) context.getJobDetail().getJobDataMap().get("myJob");//获得job
job.getTest().Send();
}
这样就可以很好的解决job无法传参的问题了。