springboot指定端口的三种方式

本文介绍了三种在Spring Boot应用中配置服务器端口的方法:通过第一配置文件设置默认端口,使用命令行参数指定启动端口,以及通过虚拟机系统属性设定端口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一配置文件中添加server.port=9090

第二在命令行中指定启动端口,比如传入参数一server. port=9000     java -jar bootsample. jar -- server.port=9000

第三传入虚拟机系统属性java - Dserver.port=9000 -jar bootsample.jar

### Spring Boot 中配置 WebSocket 的指定端口 在 Spring Boot 中,默认情况下,WebSocket 使用的是应用程序的主要 HTTP 端口(通常是 `8080`)。如果需要为 WebSocket 配置单独的端口,则可以通过自定义嵌入式服务器的方式实现。以下是具体方法: #### 方法一:通过独立的 Tomcat 容器配置 可以创建一个新的嵌入式 Servlet 容器实例来处理 WebSocket 连接,并将其绑定到不同的端口。 ```java import org.apache.catalina.connector.Connector; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class WebConfig { @Value("${server.websocket.port}") private int wsPort; @Bean public TomcatServletWebServerFactory tomcatEmbedded() { TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); factory.addAdditionalTomcatConnectors(createStandardConnector()); return factory; } private Connector createStandardConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(wsPort); return connector; } } ``` 上述代码中,`wsPort` 是用于 WebSocket 的特定端口号[^1]。此方式允许将 WebSocket 流量分离到另一个端口上运行。 --- #### 方法二:手动设置 WebSocket URL 和端口映射 另一种更简单的做法是在应用启动时动态修改 WebSocket 的路径或协议头中的主机地址和端口信息。例如,在控制器层中显式指明端口: ```java @RestController @RequestMapping("/ws") public class WebSocketController { @GetMapping("/connect/{port}") public ResponseEntity<String> connect(@PathVariable int port) { String url = "ws://localhost:" + port + "/endpoint"; return ResponseEntity.ok(url); } } ``` 在此示例中,客户端可以根据返回的结果调整其连接目标至指定端口上的服务[^2]。 注意:这种方式并未真正更改底层监听端口,而是引导用户访问其他已知开放的服务入口。 --- #### 方法三:利用多模块项目结构隔离端口 对于复杂的企业级解决方案来说,推荐采用微服务架构设计思路——即把 WebSocket 功能拆分出来作为一个子模块或者完全独立的应用程序部署于另一台机器甚至云环境中。这样不仅便于维护管理还能有效减少资源争用情况的发生概率[^3]。 最后一步就是确保所有必要的 Maven 或 Gradle 构建工具包都已经被正确引入到了工程当中去支持这些额外的功能需求了。 --- ### 总结 为了满足不同场景下的灵活性要求,Spring Boot 提供了多种途径让我们能够轻松定制化我们的网络通信机制,包括但不限于上面提到过的几种典型模式之一即可达成目的. ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 以上 XML 片段展示了如何向 POM 文件添加所需插件以便启用完整的 WebSocket 支持特性集[^4].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值