springboot 获取本机IP、端口号、项目名
原创
©著作权归作者所有:来自51CTO博客作者Marydon的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
}
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
作者:Marydon