package me.test.first.quartz.b; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.Scheduler; import org.quartz.SchedulerContext; import org.quartz.SchedulerException; import org.quartz.Trigger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; import org.springframework.scheduling.quartz.QuartzJobBean; public class JobB extends QuartzJobBean { private Logger log = LoggerFactory.getLogger(JobB.class); @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { log.info("JobExecutionContext = " + context); // 获取 Trigger Trigger trigger = context.getTrigger(); log.info("Triger = " + trigger); // 获取JobDetail JobDetail jobDetail = context.getJobDetail(); JobDataMap jobDataMap = jobDetail.getJobDataMap(); // 从 JobDataMap 中读取配置信息 String value = jobDataMap.getString("sampleKey"); log.info("JobDataMap['sampleKey'] = " + value); Scheduler scheduler = context.getScheduler(); SchedulerContext schedulerContext = null; try { schedulerContext = scheduler.getContext(); } catch (SchedulerException e) { e.printStackTrace(); } // 获取 Spring 管理的其他Bean Runnable runnable = (Runnable) schedulerContext.get("runnable"); runnable.run(); // 获取 ApplicationContext ApplicationContext appContext = (ApplicationContext) schedulerContext .get("applicationContext"); log.info("ApplicationContext = " + appContext); } public void insertJob() { } public void updateJob() { } public void deleteJob() { } }