quartz跑二次解决

来源:互联网 发布:计算机c语言查询软件吗 编辑:程序博客网 时间:2024/05/14 08:02

QUARTZ使用时请不要用SPRING的GETBEAN,若一定要用就这样用:

public class SpringContextHolder implements ApplicationContextAware

{
private static ApplicationContext applicationContext;


public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException
{
SpringContextHolder.applicationContext = applicationContext;
}

/** 
* 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. 
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name){
checkApplicationContext();
return (T)applicationContext.getBean(name);
}

@SuppressWarnings("unchecked")
public static <T> T getBean(Class<T> clazz){
checkApplicationContext();
return (T)applicationContext.getBeansOfType(clazz);
}

/** 
* 清除applicationContext静态变量. 
*/
public static void cleanApplicationContext(){
applicationContext = null;
}

public static ApplicationContext getApplicationContext(){
checkApplicationContext();
return applicationContext;
}

private static void checkApplicationContext(){
if (applicationContext==null)
{
throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder");
}
}


}


总之SPRING的XML文件只能初始化一次。

0 0
原创粉丝点击