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;
}
寫在最后
哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!