一、手动定义一个spring类便于获取注入的类
@Component
public class SpringUtile implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContextParam) throws BeansException {
applicationContext=applicationContextParam;
}
public static Object getObject(String id) {
Object object = null;
object = applicationContext.getBean(id);
return object;
}
public static <T> T getObject(Class<T> tClass) {
return applicationContext.getBean(tClass);
}
public static Object getBean(String tClass) {
return applicationContext.getBean(tClass);
}
public <T> T getBean(Class<T> tClass) {
return applicationContext.getBean(tClass);
}
}
二、定义一个类实现Job类
具体项目可以在对应的service上实现,,也可独立写
public class CpServiceImpl implements ICpService, Job{}
三、编写定时任务工具类
public class zidong {
private SchedulerFactory schedulerFactory = null;
private Scheduler scheduler = null;
public void start() throws SchedulerException {
schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.getScheduler();
}
public void zhengshi() throws SchedulerException {
schedulerFactory = new StdSchedulerFactory();
scheduler = schedulerFactory.getScheduler();
// 1、创建调度器Scheduler
// 2、创建JobDetail实例,并与PrintWordsJob类绑定(Job执行内容)
JobDetail jobDetail = JobBuilder.newJob(CpServiceImpl.class)
.usingJobData("jobDetail1", "这个Job用来测试的")
.withIdentity("job1", "group1").build();
// 3、构建Trigger实例,每隔1s执行一次
// Date startDate = new Date();
// startDate.setTime(startDate.getTime() + 5000);
//
// Date endDate = new Date();
// endDate.setTime(startDate.getTime() + 5000);
CronTrigger cronTrigger = newTrigger().withIdentity("trigger1", "triggerGroup1")
.usingJobData("trigger1", "这是jobDetail1的trigger")
.startNow()//立即生效
// .startAt(startDate)
// .endAt(endDate)
.withSchedule(cronSchedule("0/1 * * * * ?").withMisfireHandlingInstructionDoNothing())
.build();
// CronTrigger cronTrigger = newTrigger().withIdentity("trigger1", "triggerGroup1").withSchedule(cronSchedule("0/1 37 16 6 12 ?")).build();
//4、执行
scheduler.scheduleJob(jobDetail, cronTrigger);
System.out.println("--------scheduler start ! ------------");
scheduler.start();
System.out.println("--------scheduler shutdown ! ------------");
}
}
CpServiceImpl类为实现job接口的类。