首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setApplicationContext(ApplicationContext applicationContext)从未调用过

setApplicationContext(ApplicationContext applicationContext)从未调用过
EN

Stack Overflow用户
提问于 2020-06-22 01:20:03
回答 1查看 1.6K关注 0票数 2

我正在尝试获取Spring应用程序上下文,然后调用它的方法getBean("beanName")来获取特定的bean,但是我有一个空指针异常,指示上下文为null。当我在setApplicationContext()方法中放置一个断点时,我发现这个方法从未被调用过,这很奇怪,因为这个方法应该在spring bean完成实例化之后调用。我在这里找了一些类似的问题,但没有一个对我有用。

这是我的密码:

代码语言:javascript
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-22 01:52:18

设置运行此对象的ApplicationContext。 通常,此调用将用于初始化对象。 要由该对象使用的ApplicationContext对象。

添加@Component

代码语言:javascript
复制
@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

代码语言:javascript
复制
TheBeanInstance bean = SpringApplicationContext.getApplicationContext().getBean(requiredType);

ApplicationContextAware

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62506177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档