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 port server.http.port=1234 #https port server.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; @Configuration public 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; } }
之後寫接口的時候便可以使用這個端口瞭。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot中配置SSL的同時支持http和https訪問
- 使用SpringBoot配置https(SSL證書)
- 解決springboot URL帶有斜杠的轉義字符百分之2F導致的400錯誤
- SpringBoot添加SSL證書的方法
- 解決springboot application.properties server.port配置問題