我试图获取 Spring 应用程序上下文,然后调用其方法 getBean("beanName") 来获取特定的 bean,但出现空指针异常,表明上下文为空。当我在 setApplicationContext() 方法中放置一个断点时,我发现这个方法永远不会被调用,这很奇怪,因为这个方法应该在 spring 完成 beans 实例化之后调用。我在这里寻找了一些类似的问题,但没有一个对我有用。
这是我的代码:
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);
}
}
Set the ApplicationContext
该对象运行于其中。
通常,此调用将用于初始化对象。
The ApplicationContext
该对象要使用的对象。
Add @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;
}
}
Use ApplicationContext
.
TheBeanInstance bean = SpringApplicationContext.getApplicationContext().getBean(requiredType);
应用上下文感知 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContextAware.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)