springBoot server.port=-1的含義說(shuō)明
springBoot server.port=-1的含義
今天遇到這種新奇的寫法,項(xiàng)目是可以正常啟動(dòng)的。

然而http的端口有范圍:1~65535。-1是訪問(wèn)不了的
而且只要是負(fù)數(shù),最終啟動(dòng)日志打印的都是
Tomcat started on port(s): -1 (http) with context path ''
那springBoot放開負(fù)一端口的含義是什么,直接到官方文檔中找答案:
明確說(shuō)明了,放開-1是為了:完全關(guān)閉HTTP端點(diǎn),但仍創(chuàng)建一個(gè)WebApplicationContext
還發(fā)現(xiàn)了另外一個(gè)好玩的配置:server.port=0
含義是:
掃描可用端口(使用OS本機(jī)來(lái)防止沖突)
也就是說(shuō),配置了server.port=0,項(xiàng)目啟動(dòng)時(shí)會(huì)自動(dòng)掃描可用端口,然后啟動(dòng)=w=
Springboot的server.port和server.http.port
需求
最近springboot項(xiàng)目為了安全啟用了https,但是項(xiàng)目中還寫了接口供其他程序調(diào)用,這個(gè)接口必須是http的。研究發(fā)現(xiàn)原來(lái)一個(gè)springboot項(xiàng)目是可以有一個(gè)http端口和一個(gè)https端口的。
正文
配置文件如下:
#http port server.http.port=1234 #https port server.port=1233
項(xiàng)目啟動(dòng)的時(shí)候使用的是server.port端口。
配置的http端口要想使用需要寫下面這樣一個(gè)配置類:
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;
}
}
之后寫接口的時(shí)候便可以使用這個(gè)端口了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目解決跨域的四種方案分享
在用SpringBoot開發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,但前端通過(guò)瀏覽器調(diào)我們接口時(shí),瀏覽器會(huì)有個(gè)同源策略的限制,即協(xié)議,域名,端口任一不一樣時(shí)都會(huì)導(dǎo)致跨域,這篇文章主要介紹跨域的幾種常用解決方案,希望對(duì)大家有所幫助2023-05-05
Myeclipse部署Tomcat_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章給大家介紹了Myeclipse部署Tomcat的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-07-07
Spring boot+mybatis+thymeleaf 實(shí)現(xiàn)登錄注冊(cè)增刪改查功能的示例代碼
這篇文章主要介紹了Spring boot+mybatis+thymeleaf 實(shí)現(xiàn)登錄注冊(cè)增刪改查功能的示例代碼,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Java class文件格式之屬性詳解_動(dòng)力節(jié)點(diǎn)java學(xué)院整理
這篇文章主要介紹了Java class文件格式之屬性詳解,需要的朋友可以參考下2017-06-06
Java Spring Boot實(shí)現(xiàn)簡(jiǎn)易掃碼登錄詳解
這篇文章主要為大家詳細(xì)介紹了java Spring Boot實(shí)現(xiàn)app掃碼登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-09-09
Java SpringBoot整合Canal實(shí)現(xiàn)數(shù)據(jù)同步方式
本文介紹了如何開啟和配置Canal,以及如何在Spring Boot中集成Canal,Canal是一種基于MySQL的數(shù)據(jù)庫(kù)變更解析工具,可以將數(shù)據(jù)庫(kù)的變更事件發(fā)送到Kafka、RocketMQ等消息隊(duì)列中,用于數(shù)據(jù)分析和挖掘2025-02-02
java中BigDecimal的介紹及使用教程BigDecimal格式化及BigDecimal常見問(wèn)題
BigDecimal是Java在java.math包中提供的線程安全的API類,用來(lái)對(duì)超過(guò)16位有效位的數(shù)進(jìn)行精確的運(yùn)算,這篇文章主要介紹了java中BigDecimal的介紹及使用,BigDecimal格式化,BigDecimal常見問(wèn)題,需要的朋友可以參考下2023-08-08

