前言
在项目开发的时候,有时候需要单独获取容器中的Bean 在Spring中提供了ApplicationContextAware接口 里面包含了ApplicationContext对象 我们可以通过实现它来获取bean对象
实现
上代码:
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringUtil.applicationContext = applicationContext;
}
public ApplicationContext getApplicationContext(){
return applicationContext;
}
public static Object getBean(String beanName){
return applicationContext.getBean(beanName);
}
public static <T> T getBean(Class<T> clazz){
return (T)applicationContext.getBean(clazz);
}
}
ApplicationContext.getBean 空指针问题解决
在前面的 SpringUtil 对象进行获取对象的时候,报空指针了 有时间加载对象的时候顺序不一样, 所以我要在需要使用 SpringUtil 的类之上添加注解
@DependsOn("springUtil")
表示我需要先引用这个,请先给我准备好