springboot websocket service注入失败?

发布于 2022-09-05 14:45:15 字数 667 浏览 12 评论 0

类加上@Compent注解就被spring托管了,可是为什么注入service会失败呢?
clipboard.png

启动过程:

clipboard.png

页面:

clipboard.png

控制台报错:

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

南汐寒笙箫 2022-09-12 14:45:16

每次回答自己提出的问题的基本都是我了,不过也好,说明我解决了。

clipboard.png

MyWebSocket类中注意下面三个地方

clipboard.png

clipboard.png

clipboard.png

故事↓在人 2022-09-12 14:45:16

楼上的回答未免太过复杂,搞清楚为什么不能注入就能很容易解决问题了

/**
 * WebSocket 配置
 *
 * @author Angus Liu
 * @data 2018/9/13
 */
@Configuration
public class WebSocketConfig {

    /**
     * ServerEndpointExporter 用于扫描和注册所有携带 ServerEndPoint 注解的实例,
     * 若部署到外部容器 则无需提供此类。
     *
     * @return
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }


    /**
     * 因 SpringBoot WebSocket 对每个客户端连接都会创建一个 WebSocketServer(@ServerEndpoint 注解对应的) 对象,Bean 注入操作会被直接略过,因而手动注入一个全局变量
     *
     * @param messageService
     */
    @Autowired
    public void setMessageService(MessageService messageService) {
        WebSocketServer.messageService = messageService;
    }
}
/**
 * WebSocket 聊天服务端
 *
 * @author Angus Liu
 * @date 2018/09/13
 */
@Component
@ServerEndpoint(value = "/web-socket-server/{account}")
public class WebSocketServer {
    // 待注入对象声明为全局变量
    public static MessageService messageService;
    // 注入代码也可以直接写在这里
    ...
}
苏大泽ㄣ 2022-09-12 14:45:16

谢谢大哥!偶像

南城旧梦 2022-09-12 14:45:16

谢谢大佬,感谢!

绝影如岚 2022-09-12 14:45:16

我想问下 没能注入的原因是什么?,照理说应该是可以注入的啊

入画浅相思 2022-09-12 14:45:16

感谢大佬,祝你长命百岁!~~~

吹泡泡o 2022-09-12 14:45:16

你这个代码写在 main方法里面,在打包上传后,代码不会直接跑main方法的

笑饮青盏花 2022-09-12 14:45:16

这个方法更简单,加个static就行,还说明原因了。

https://blog.csdn.net/m0_3720...

撩动你心 2022-09-12 14:45:16

不行啊,没解决掉

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文