diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java index bed31e11..cc4045b1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java @@ -1,10 +1,8 @@ package com.ruoyi.framework.config; -import org.springframework.boot.web.context.WebServerInitializedEvent; -import org.springframework.context.ApplicationListener; +import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Component; -import java.net.InetAddress; -import java.net.UnknownHostException; +import com.ruoyi.framework.util.ServletUtils; /** * 服务相关配置 @@ -13,28 +11,23 @@ import java.net.UnknownHostException; * */ @Component -public class ServerConfig implements ApplicationListener +public class ServerConfig { - private int serverPort; - + /** + * 获取完整的请求路径,包括:域名,端口,上下文访问路径 + * + * @return 服务地址 + */ public String getUrl() { - InetAddress address = null; - try - { - address = InetAddress.getLocalHost(); - } - catch (UnknownHostException e) - { - e.printStackTrace(); - } - return "http://" + address.getHostAddress() + ":" + this.serverPort; + HttpServletRequest request = ServletUtils.getRequest(); + return getDomain(request); } - @Override - public void onApplicationEvent(WebServerInitializedEvent event) + public static String getDomain(HttpServletRequest request) { - this.serverPort = event.getWebServer().getPort(); + StringBuffer url = request.getRequestURL(); + String contextPath = request.getServletContext().getContextPath(); + return url.delete(url.length() - request.getRequestURI().length(), url.length()).append(contextPath).toString(); } - }