版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/russle/article/details/82563399
有时我们需要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;
}
完整的代码在这里
截图