You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何精简Spring STOMP WebSocket客户端依赖 改用Tyrus体积更小吗?

体积对比结论

Tyrus纯客户端依赖的体积远小于tomcat-embed-websocket方案。tomcat-embed-websocket需要依赖完整的tomcat-embed-core,整套加起来体积接近2MB,而Tyrus最小客户端依赖组合仅需不到800KB,没有冗余的Web容器相关组件,非常适合纯WebSocket客户端场景。


仅客户端所需的Tyrus依赖配置

你原来的spring-boot-starter-websocket排除spring-boot-starter-web的配置可以保持不变,直接把原有的tomcat-embed-websocket依赖替换为以下配置即可:

<!-- Tyrus客户端核心依赖,1.x分支对应javax.websocket(适配Spring Boot 2.x),2.x分支对应jakarta.websocket(适配Spring Boot 3+) -->
<dependency>
    <groupId>org.glassfish.tyrus</groupId>
    <artifactId>tyrus-client</artifactId>
    <version>1.20</version>
    <exclusions>
        <!-- 排除服务端相关冗余组件 -->
        <exclusion>
            <groupId>org.glassfish.tyrus</groupId>
            <artifactId>tyrus-server</artifactId>
        </exclusion>
        <!-- 排除非必需的扩展功能 -->
        <exclusion>
            <groupId>org.glassfish.tyrus.ext</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 基于JDK内置HTTP客户端实现的传输层,无需引入额外Grizzly等容器依赖,进一步减小体积 -->
<dependency>
    <groupId>org.glassfish.tyrus.bundles</groupId>
    <artifactId>tyrus-standalone-client-jdk</artifactId>
    <version>1.20</version>
</dependency>

适配注意事项

  • Spring的StandardWebSocketClient会自动扫描类路径下的javax.websocket.ContainerProvider实现,切换为Tyrus后无需修改任何业务代码即可直接运行。
  • 无需额外单独引入javax.websocket-api或jakarta.websocket-api依赖,Tyrus包已经内置了对应版本的API规范,可避免版本冲突。

内容的提问来源于stack exchange,提问作者Thiago Sayão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:36:05