1. 程式人生 > 其它 >springboot 獲取本機IP、埠號、專案名

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

寫在最後

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

相關推薦: