其实很简单,如下:
public class ExampleJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
WebApplicationContext a = ContextLoader.getCurrentWebApplicationContext();
System.out.println(a.getBean(APIController.class));
System.out.println(a.containsBean("APIController"));
}
}
通过ContextLoader类的getCurrentWebApplicationContext()方法获取spring的WebApplicationContext,然后再通过相应获取Bean的方法获取Bean。上述方法是个通用方法,不只可以用在Quartz中,其他非spring管理类也可以通过这种方法来获取。