美文网首页
使用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