2014-12-09 28 views
6

如何在啓動spring引導應用程序後自動啓動瀏覽器。是否有任何偵聽器方法回調來檢查webapp是否已部署並準備好爲請求提供服務當瀏覽器被加載時,用戶看到索引頁面並且可以開始與webapp交互?在spring引導webapp準備就緒後自動啓動瀏覽器

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
    // launch browser on localhost 
} 

回答

4

你可以通過一些java代碼來實現。我不確定春季靴子是否有開箱的東西。

import java.awt.Desktop; 
import java.io.IOException; 
import java.net.URI; 
import java.net.URISyntaxException; 

public class Browser { 
    public static void main(String[] args) { 
     String url = "http://www.google.com"; 

     if(Desktop.isDesktopSupported()){ 
      Desktop desktop = Desktop.getDesktop(); 
      try { 
       desktop.browse(new URI(url)); 
      } catch (IOException | URISyntaxException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     }else{ 
      Runtime runtime = Runtime.getRuntime(); 
      try { 
       runtime.exec("xdg-open " + url); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+0

也許我應該細說了,我想獲得像beanpostconstruct回調,讓我知道,如果網絡環境是準備發球,然後我可以打開瀏覽器像上面的代碼或使用瀏覽器啓動庫。 – cherit 2014-12-09 12:07:15

+0

運行方法之後,應用程序已準備就緒......所以,您可以在此之後啓動瀏覽器。 – 2014-12-09 12:19:27

+0

你的意思是說運行方法是阻塞呼叫? – cherit 2014-12-09 12:27:01

0

下面的代碼爲我工作:

@EventListener({ApplicationReadyEvent.class}) 
void applicationReadyEvent() { 
    System.out.println("Application started ... launching browser now"); 
    Browse("www.google.com"); 
} 

public static void Browse(String url) { 
    if(Desktop.isDesktopSupported()){ 
     Desktop desktop = Desktop.getDesktop(); 
     try { 
      desktop.browse(new URI(url)); 
     } catch (IOException | URISyntaxException e) { 
      e.printStackTrace(); 
     } 
    }else{ 
     Runtime runtime = Runtime.getRuntime(); 
     try { 
      runtime.exec("rundll32 url.dll,FileProtocolHandler " + url); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
相關問題