同一Spring项目中可以同时使用REST API和WebSocket吗?
问题解答
两个依赖不存在任何冲突,可以同时在同一个Spring Boot应用中使用,这是Spring生态原生支持的常规开发组合,完全可以满足你用REST API处理常规CRUD、同时用WebSocket推送实时图表、数据的需求。
依赖配置示例
以Maven为例,直接正常引入两个starter即可:
<!-- 用于REST API开发 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 用于WebSocket实时推送 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>
常规开发流程
- 开发REST CRUD接口:和普通Spring Web项目完全一致,编写
@RestController类,搭配@GetMapping/@PostMapping等注解实现业务接口即可,不需要做任何额外适配。 - 配置WebSocket能力:新增WebSocket配置类,添加
@EnableWebSocket(原生WebSocket)或者@EnableWebSocketMessageBroker(STOMP协议)注解开启对应能力,注册端点、消息处理器等规则即可。 - 实现实时推送逻辑:如果使用STOMP协议,直接注入
SimpMessagingTemplate就可以向指定主题推送图表、指标等实时数据,前端订阅对应主题即可拿到更新,和REST接口的逻辑完全解耦。
注:Spring Boot内置的Tomcat、Jetty、Undertow容器都默认同时支持HTTP和WebSocket协议,打包运行时不需要额外做容器适配。你很少看到专门讲两个依赖同时使用的教程,是因为该组合属于默认支持的常规用法,不需要特殊说明。
内容的提问来源于stack exchange,提问作者rbm
相关产品推荐
相关产品推荐

