SpringBoot 通过实现ApplicationContextAware 获取bean,applicationContext获取不到

weixin_38048154 2019-04-04 06:23:46
@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()中取修改,然后去打印也是没有修改成功的,那网上的这些例子,怎么成功的啊,我是哪少配置了吗? 谢谢!      
...全文
1057 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38081679 2019-08-02
  • 打赏
  • 举报
回复
方法没问题 检查测试类有没有加注解
weixin_38073465 2019-08-02
  • 打赏
  • 举报
回复
spring扫描到这个工具类了吗,需要看这个类和启动类的包路径
weixin_38069146 2019-06-06
  • 打赏
  • 举报
回复
这个需要和springboot的启动类放在同级路径下
weixin_38060006 2019-04-04
  • 打赏
  • 举报
回复
我以前也遇到过。我的问题是,在框架执行 setApplicationContext() 之前。我就尝试调用 getBean()方法导致的空指针异常。你可以检查一下是不是跟我一样。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧