ApplicationContextAware ApplicationContext注入有时会返回null

时间:2015-11-23 10:27:29

标签: java spring

为什么我有时会将上下文视为null? 我已经编写了Util类来在Spring中获取bean。它在Server中工作正常,但几小时或几天后我们得到了NPE。然后我们意识到我们正在获得零上下文 以下是代码

public class ApplicationUtil implements ApplicationContextAware {

private static ApplicationContext context;

@Override
public void setApplicationContext(ApplicationContext ac) throws BeansException {
    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    context = ac;
}

public static Object getBean(String beanName) {
        return context.getBean(beanName);
}
}  

为了避免NPE,我们写了

 public static Object getBean(String beanName) {
    if (context != null) {
        return context.getBean(beanName);
    }
    context = new ClassPathXmlApplicationContext("dispatcher-servlet.xml");
    return context.getBean(beanName);
}  

我的问题是,即使我们使用ApplicationContextAware,我们也会变为null。这是一个服务器问题?还是糟糕的程序化实践?

有什么建议吗?

0 个答案:

没有答案