项目中需要继承Quartz框架。项目的环境是SSM框架
遇到的问题是:在quartz的Job中使用@Autowired自动注入service时候报错,报service为null。
quarz调度不受spring容器管理,不能直接使用@AutoWired注入service
问题:如何在非spring容器中(非controller中)使用service方法。
思路:可以通过ApplicationContext 实例去获取bean
解决方法:
1、编写工具类继承ApplicationContextAware类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.ComponentScan;
public class ApplicationContextSup implements ApplicationContextAware{
private static ApplicationContext context ;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context=applicationContext;
}
public static Object getBean(String beanName){
return context.getBean(beanName);
}
public static <T> T getBean(Class<