我正在尝试获取Spring应用程序上下文,然后调用它的方法getBean("beanName")来获取特定的bean,但是我有一个空指针异常,指示上下文为null。当我在setApplicationContext()方法中放置一个断点时,我发现这个方法从未被调用过,这很奇怪,因为这个方法应该在spring bean完成实例化之后调用。我在这里找了一些类似的问题,但没有一个对我有用。
这是我的密码:
public class SpringApplicationContext 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);
}
}发布于 2020-06-22 01:52:18
设置运行此对象的
ApplicationContext。 通常,此调用将用于初始化对象。 要由该对象使用的ApplicationContext对象。
添加@Component。
@Component
public class SpringApplicationContext implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
CONTEXT = applicationContext;
}
public static ApplicationContext getApplicationContext(){
return CONTEXT;
}
}使用ApplicationContext。
TheBeanInstance bean = SpringApplicationContext.getApplicationContext().getBean(requiredType);https://stackoverflow.com/questions/62506177
复制相似问题