美文网首页
使用WebSocket进行依赖注入为null的解决办法

使用WebSocket进行依赖注入为null的解决办法

作者: 守护浪漫的小香樟 | 来源:发表于2022-07-04 15:26 被阅读0次

使用WebSocket进行依赖注入为null的解决办法

前阵子写了利用websocket和移动端进行通信的内容,现在想要把通信过程中的会话信息通过业务存储到数据库中,需要整合Websocket,@ServerEndpoint注解所标注的类,类似于我们写的@Controller标注的Controller层,

结果@Autowire注入的Service层的bean为null,然后检查配置,各种姿势测试这个bean,发现和

@ServerEndpoint有关。先看代码

你要用 @ServerEndpoint实现ws,就注定不能用@Autowired注入bean,那咋整?new一个?肯定不行。思来想去,你不就是要个bean么,我@Autowired把你召唤不出来,那我拿spring上下文把你getBean(“name”)一下如何,那么问题又来了,容器启动的时候spring上下文已经加载了,怎样拿到这个上下文?

拿到上下文就好说了,直接getBean就OK。

getBean

@Component

public class SpringContextUtilimplements ApplicationContextAware {

/**

*  Spring应用上下文环境

*/

    private static ApplicationContextapplicationContext;

/**

* 实现ApplicationContextAware接口的回调方法,设置上下文环境

*/

    @Override

    public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

SpringContextUtil.applicationContext = applicationContext;

}

public static ApplicationContext getApplicationContext() {

return applicationContext;

}

/**

* 获取对象 这里重写了bean方法,起主要作用

*/

    public static Object getBean(String beanId)throws BeansException {

return applicationContext.getBean(beanId);

}

}

相关文章

网友评论

      本文标题:使用WebSocket进行依赖注入为null的解决办法

      本文链接:https://www.haomeiwen.com/subject/nuvdbrtx.html