springBoot server.port=

网友投稿 656 2022-12-19

springBoot server.port=

springBoot server.port=

springBoot server.port=-1的含义

今天遇到这种新奇的写法,项目是可以正常启动的。

然而http的端口有范围:1~65535。-1是访问不了的

而且只要是负数,最终启动日志打印的都是

Tomcat starteBbcLvrOSVxd 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

#httpBbcLvrOSVxs 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 Connehttp://ctor("org.apache.coyote.httpBbcLvrOSVx11.Http11NioProtocol");

connector.setPort(httpPort);

return connector;

}

}

之后写接口的时候便可以使用这个端口了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MyBatis批量插入的三种方式比较总结
下一篇:大数据Kafka:消息队列和Kafka基本介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~