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

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;
}

 

写在最后

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

 相关推荐:

posted @ 2022-01-26 17:15  Marydon  阅读(10780)  评论(0编辑  收藏  举报