Sfoglia il codice sorgente

获取完整的服务地址

RuoYi 6 anni fa
parent
commit
2f535082f2

+ 14 - 21
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<WebServerInitializedEvent>
+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();
     }
-
 }