你的bean由spring托管,看下job,如此获得service:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.vduty.cms.web.admin.service.AdminMgrService;
import com.vduty.cms.web.controller.HomeController;
import com.vduty.cms.web.utils.ApplicationContextHandle;
public class WebRunLog implements Job {
/*@Autowired
private AdminMgrService adminService;*/
private static final AdminMgrService adminService = (AdminMgrService)ApplicationContextHandle.getBean(AdminMgrService.class);
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
//http://logger.info("new log qqqqqqqqqqqqqqqqqqqq "+ DatetimeUtils.getNowDate());
if (adminService != null){
logger.info("quartz job execute saveWebLog");
adminService.saveWebLog("new log qqqqqqqqqqqqqqqqqqq");}
else
{
System.out.println("adminService is null");
}
}
}
然后载首页控制器调用里:
// 获取Scheduler实例
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
// 具体任务
JobDetail job = JobBuilder.newJob(WebRunLog.class).withIdentity("job1", "group1").build();
// 触发时间点
SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5).repeatForever();
//trigger1,group1 标识了任务的唯一,相同trigger1,group1的任务不能同时被执行,会报任//务已经纯在的错误提示
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.startNow().withSchedule(simpleScheduleBuilder).build();
// 交由Scheduler安排触发
scheduler.scheduleJob(job, trigger);