SpringBoot项目启动(监听)多个端口

0.背景

在最开始时,我们指明:

server.port = 9595

这样,springboot程序启动后就会监听9595端口.

但是,碰到一些特殊情场景时,需要加新的监听端口?

1.配置文件中声明要增加的端口

# 用,分割,末尾没有点哈 server.additionalPorts: 2080,2022

2.编写配置类

package com.xx; import org.apache.catalina.connector.Connector; import org.apache.commons.lang.StringUtils; 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; import java.util.ArrayList; import java.util.List; /** * @Description: 增加端口监听 * @Class: TomcatConfig * @Author: Yiang37 * @Date: 2021/9/3 15:56 * @Version: 1.0 */ @Configuration public class TomcatConfig { @Value("${server.additionalPorts}") private String additionalPorts; @Bean public TomcatServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); Connector[] additionalConnectors = this.additionalConnector(); if (additionalConnectors != null && additionalConnectors.length > 0) { tomcat.addAdditionalTomcatConnectors(additionalConnectors); } return tomcat; } private Connector[] additionalConnector() { if (StringUtils.isBlank(this.additionalPorts)) { return null; } // 端口按,分割 String[] ports = this.additionalPorts.split(","); List<Connector> result = new ArrayList<>(); for (String port : ports) { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(Integer.parseInt(port)); result.add(connector); } return result.toArray(new Connector[] {}); } }

3.启动时声明上面的配置类

package com.xx; import com.xx.TomcatConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; // 增加端口监听 @Import({TomcatConfig.class}) @SpringBootApplication @Slf4j public class WkgApplication { public static void main(String[] args) { SpringApplication.run(WkgApplication.class, args); log.info("\n-------------------------------------------------\n" + "xx run success...\n" + "-------------------------------------------------"); } }

4.启动项目即可看到新端口被监听

image-20210909200153518


__EOF__

本文作者羊37
本文链接https://www.cnblogs.com/yang37/p/15248606.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   羊37  阅读(3666)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示