您的位置:首頁/技術文章
文章詳情頁

springBoot server.port=-1的含義說明

瀏覽:20日期:2023-02-17 13:16:45
springBoot server.port=-1的含義

今天遇到這種新奇的寫法,項目是可以正常啟動的。

springBoot server.port=-1的含義說明

然而http的端口有范圍:1~65535。-1是訪問不了的

而且只要是負數,最終啟動日志打印的都是

Tomcat started on port(s): -1 (http) with context path ’’

那springBoot放開負一端口的含義是什么,直接到官方文檔中找答案:

明確說明了,放開-1是為了:完全關閉HTTP端點,但仍創建一個WebApplicationContext

還發現了另外一個好玩的配置:server.port=0

含義是:

掃描可用端口(使用OS本機來防止沖突)

也就是說,配置了server.port=0,項目啟動時會自動掃描可用端口,然后啟動=w=

Springboot的server.port和server.http.port需求

最近springboot項目為了安全啟用了https,但是項目中還寫了接口供其他程序調用,這個接口必須是http的。研究發現原來一個springboot項目是可以有一個http端口和一個https端口的。

正文

配置文件如下:

#http portserver.http.port=1234#https portserver.port=1233

項目啟動的時候使用的是server.port端口。

配置的http端口要想使用需要寫下面這樣一個配置類:

import org.apache.catalina.connector.Connector;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;import org.springframework.boot.web.servlet.server.ServletWebServerFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; @Configurationpublic class HttpsConfig { @Value('${server.http.port}') private Integer httpPort; @Bean public ServletWebServerFactory serverFactory() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();tomcat.addAdditionalTomcatConnectors(createStandardConnector());return tomcat; } /** * 配置http * @return */ private Connector createStandardConnector() {Connector connector = new Connector('org.apache.coyote.http11.Http11NioProtocol');connector.setPort(httpPort);return connector; } }

之后寫接口的時候便可以使用這個端口了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
国产综合久久一区二区三区