1.情景展示

使用springboot内置的tomcat启动项目,如何获取本地IP地址、项目端口号以及项目名称?

2.获取本地IP

try {
String hostAddress = Inet4Address.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}

3.获取项目端口号

第一步:在要获取IP的java类当中,注入对象Environment;

import org.springframework.core.env.Environment;
import javax.annotation.Resource;
@Resource
Environment environment;

第二步:代码实现。

String port = environment.getProperty("server.port");

4.获取项目名称

String contextPath = environment.getProperty("server.servlet.context-path");
if (contextPath == null) {
contextPath = "";
}

5.整合

查看代码

/*
* 获取springboot项目的访问地址
* @attention: springboot项目使用的是内置的tomcat启动时,本方法有效
* @date: 2022/1/26 17:02
* @param: environment
* @return: java.lang.String 项目访问地址
* 构成:protocol://ip:port/contextPath
*/
@NotNull
public static String getAccessPath (@NotNull Environment environment) {
String networkProtocol = "";
String ip = "";
String port = "";
String webApp = "";
try {
// 网络协议
networkProtocol = "http";
// 局域网ip
ip = Inet4Address.getLocalHost().getHostAddress();
// 端口号
port = environment.getProperty("server.port");
// 项目发布名称
webApp = environment.getProperty("server.servlet.context-path");
if (webApp == null) {
webApp = "";
}
} catch (UnknownHostException e) {
e.printStackTrace();
log.error(e.getMessage());
}

log.info("项目访问地址是:{}://{}:{}{}", networkProtocol, ip, port, webApp);
return networkProtocol + "://" + ip + ":" + port + webApp;
}

springboot 获取本机IP、端口号、项目名_IP

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!


作者:Marydon