Spring Boot程序获取tomcat启动端口
程序员文章站
2022-05-04 12:52:13
...
有时我们需要Spring Boot程序的启动端口,例如我们在代码中需要拼接改程序的监控检查URL,就会需要用到端口, 那么如何获取tomcat的端口?
办法有很多,实现ApplicationListener接口,通过WebServerInitializedEvent(Spring Boot 2.0.x版本) 或者EmbeddedServletContainerInitializedEvent(Spring Boot 1.5.x版本), 以及最简单的方式—读取属性文件。
方法一 实现ApplicationListener接口
直接看代码
package com.yq.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class ServerConfig implements ApplicationListener<WebServerInitializedEvent> {
private int serverPort;
public int getPort() {
return this.serverPort;
}
@Override
public void onApplicationEvent(WebServerInitializedEvent event) {
this.serverPort = event.getWebServer().getPort();
log.info("Get WebServer port {}", serverPort);
}
}
////for 1.5.x Spring Boot
//public class ServerConfig implements ApplicationListener<EmbeddedServletContainerInitializedEvent> {
// private int serverPort;;
//
// public int getPort() {
// return this.serverPort;
// }
//
// @Override
// public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) {
// this.serverPort = event.getEmbeddedServletContainer().getPort();
// }
//}
方法二, 读取配置文件属性
首先我们在application.properties中设置端口server.port=6061 ,如果不设置默认是8080. 其次我们在config类中读取,并设置默认值(如果application.properties没有设置就使用默认值)
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* Simple to Introduction
* className: MyConfig
*
* @author EricYang
* @version 2018/9/9 22:17
*/
@Data
@Configuration
public class MyConfig {
@Value("${server.port:8080}")
private int port;
}
完整的代码在这里
截图
推荐阅读
-
Spring Boot修改启动端口的方法
-
Spring Boot启动端口修改方法
-
spring boot启动文件 或 自定义 配置文件 值获取
-
spring boot启动文件 或 自定义 配置文件 值获取
-
Spring Boot 在程序中获取启动端口号
-
Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题
-
Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题
-
Tomcat启动时获取访问地址和端口号
-
Tomcat启动时获取访问地址和端口号
-
Spring Boot 项目 启动 端口经常被占用 彻底解决方案