SpringBoot 通过实现ApplicationContextAware 获取bean,applicationContext获取不到
@Component
public class SpringBeanUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (SpringBeanUtils.applicationContext == null) {
SpringBeanUtils.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
}
跟网上一样的代码,setApplicationContext()方法也会执行,在方法里面打印applicationContext也能获取到。
但是从其他工具类中根据SpringBeanUtils.getBean(SsKingRoomService.class)去获取bean,报空指针,applicationContext是null。
我定义其他static变量,在setApplicationContex()中取修改,然后去打印也是没有修改成功的,那网上的这些例子,怎么成功的啊,我是哪少配置了吗? 谢谢!