项目中有两个服务,PC和H5,各自的工程代码里都有Service包。后来做代码优化,将service的包抽出来做了一个jar包,PC和H5的服务各自引用该jar包。原本service包在各自服务内部的时候没有问题,抽出来jar包再引用后就发现,使用ApplicationContext.getBean方法时,ApplicationContext报空指针,以下为项目中的代码结构以及解决方法。
在framework-common的jar包中有一个SpringContextUtils类,类中对ApplicationContext的方法进行了封装:
@Lazy(false)
@Component("springContext")
public class SpringContextUtils implements ApplicationContextAware {
private static ApplicationContext context;
private static boolean started=false;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtils.context=applicationContext;
started = true;
}
public static Object getBean(String name) throws BeansException {
return context.getBean(name);
}
}
在另一个service-common的jar包中,对f