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

本文介绍了如何在SpringBoot项目中配置HTTP服务端口,包括静态设置和动态获取。提供两种方法:通过WebServerApplicationContext注入和实现ApplicationListener接口获取WebServer实例以得到端口号。
摘要由CSDN通过智能技术生成

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


设置HTTP服务端口:

server.port 或者 SERVER_PORT环境变量

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


同样遵守如下优先级:

这些都是外部配置源:

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

随机HTTP服务端口

server.port = 0 即可。

【备注】: 还可将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接口,就会把这个组件注册成为容器中的监听器

在这里插入图片描述


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_L_J_H_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值