springBoot server.port=-1的含義說明
今天遇到這種新奇的寫法,項(xiàng)目是可以正常啟動(dòng)的。
然而http的端口有范圍:1~65535。-1是訪問不了的
而且只要是負(fù)數(shù),最終啟動(dòng)日志打印的都是
Tomcat started on port(s): -1 (http) with context path ’’
那springBoot放開負(fù)一端口的含義是什么,直接到官方文檔中找答案:
明確說明了,放開-1是為了:完全關(guān)閉HTTP端點(diǎn),但仍創(chuàng)建一個(gè)WebApplicationContext
還發(fā)現(xiàn)了另外一個(gè)好玩的配置:server.port=0
含義是:
掃描可用端口(使用OS本機(jī)來防止沖突)
也就是說,配置了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)原來一個(gè)springboot項(xiàng)目是可以有一個(gè)http端口和一個(gè)https端口的。
正文配置文件如下:
#http portserver.http.port=1234#https portserver.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; @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; } }
之后寫接口的時(shí)候便可以使用這個(gè)端口了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
