首先、JobContext
package com.ccse.dsmis.quartz;
import javax.servlet.ServletContext;
/**
* Job上下文
* @author wdx 2016-04-11
*
*/
public class JobContext {
private final static JobContext instance = new JobContext();
private static ServletContext context;
private JobContext() {
}
public static JobContext getInstance() {
return instance;
}
protected void setContext(ServletContext context2) {
context = context2;
}
public ServletContext getContext() {
return context;
}
}
其次,JonContextListener
package com.ccse.dsmis.quartz;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Job上下文监听器
* @author wdx 2016-04-11
*
*/
public class JobContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent servletcontextevent) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent servletcontextevent) {
// TODO Auto-generated method stub
JobContext.getInstance().setContext(
servletcontextevent.getServletContext());
}
}
第三,web.xml中加入监听器
<!-- quartz自定义监听器 wdx 2016-04-11-->
<listener>
<listener-class>
com.ccse.dsmis.quartz.JobContextListener
</listener-class>
</listener>
第四,获取
private Object initService(String beanId) {
ServletContext scontext = JobContext.getInstance().getContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(scontext);
return ctx.getBean(beanId);
}