当前位置:   article > 正文

31、springboot 配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口_springboot 配置http 端口

springboot 配置http 端口

配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口


设置HTTP服务端口:

server.port 或者 SERVER_PORT环境变量

——总结来说,其实就是要配置 server.port 外部配置属性。


同样遵守如下优先级:

这些都是外部配置源:

测试配置 > 命令行参数 > JSON配置 > 系统属性 > 环境变量 > 配置文件 > 配置类 > 默认属性
  • 1

随机HTTP服务端口

server.port = 0 即可。
  • 1

【备注】: 还可将server.port设为-1,这样就关闭了HTTP端口,也就无法对外提供HTTP服务。


代码示例

就是在yml配置文件中配置端口号

在这里插入图片描述


运行时发现HTTP服务端口 --> WebServer API

在这里插入图片描述

要获取Web服务器相关的信息(比如HTTP端口),都可通过WebServer API来获取。


为了获取WebServer实例,通常有两种方式:


方式1:

定义一个WebServerApplicationContext成员变量,Spring Boot会为之完成依赖注入。

接下来即可通过WebServerApplicationContext来获取WebServer


方式2:

实现一个监听器接口:ApplicationListener< WebServerInitializedEvent >

对于测试用例,其实可以更简单来获取动态端口

@LocalServerPort 注解即可将HTTP端口动态注入。


代码演示

需求:在项目中获取服务器的动态端口,通过获取WebServer实例来获取动态端口号。


获取WebServer实例的方法1:

通过WebServerApplicationContext来获取WebServer

在这里插入图片描述


获取WebServer实例的方法2:

实现一个监听器接口:ApplicationListener< WebServerInitializedEvent > 来获取项目中的动态端口号

先获取WebServer实例,再从WebServer中获取端口号。

通过实现ApplicationListener接口,来实现一个监听器类

接口的参数是泛型 -> WebServerInitializedEvent ,表示这个监听器只监听WebServerInitializedEvent这个事件(web服务器的初始化事件)

@Component: 用于标识一个类作为组件被Spring容器管理
当一个类使用@Component注解时,Spring容器会自动创建该类的实例并将该实例纳入到容器的管理中。

为了让这个springboot项目能够识别到这个监听器,那么就得把这个监听器配置成springboot中的一个bean。

用@Component注解把这个监听器组件变成springboot容器中的bean。

那么项目启动的时候,spring容器就会来检测这个bean,看是否实现了ApplicationListener这个接口,如果发现这个组件有实现这个ApplicationListener接口,就会把这个组件注册成为容器中的监听器

在这里插入图片描述


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/707260
推荐阅读
相关标签
  

闽ICP备14008679号