SpringBoot啓動後自動打開瀏覽器訪問項目

以前咱們用SSM或者SSH進行JAVA WEB開發的時候,IDEA 須要配置Tomcat而後把項目放到tomcat運行,tomcat啓動的時候會自動打開瀏覽器去訪問項目,可是SpringBoot是內嵌tomcat的,項目啓動成功後沒法自主訪問,須要咱們手動打開瀏覽器輸入url訪問,我以爲這樣很不習慣因此研究了一下java

具體實現方案

我想作成一個通用的啓動,因此能夠隨手配置是否須要啓動是打開瀏覽器web

Mac 電腦

  1. 屬性文件中添加對應屬性
#運行項目後是否在瀏覽器中打開瀏覽器
openProject:
  isOpen: true  #是否打開瀏覽器運行 
  cmd: open -a   #運行命令
  web:
    openUrl: http://localhost:8989/ #項目要運行url
    googleExcute: GoogleChrome  #運行的瀏覽器
這裏個人電腦是Mac 因此須要使用這個open -a 命令window不須要這個屬性還有這個googleExcute表示瀏覽器名稱默認Mac 瀏覽器名稱是有空格,請把這個app名字空格去掉且不能有種中文,不然使用open -a 命令無效沒法打開

經過定義屬性配置文件達到能夠定製化,隨手關閉spring

  1. 編寫本身的CommandRunner類實現CommandLineRunner接口的run方法,這個方法會在項目啓動後製動執行
package com.fashvn.ctmsdata.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class CommandRunner implements CommandLineRunner {
    @Value("${openProject.web.openUrl}")
    private String openUrl;
    @Value("${openProject.isOpen}")
    private boolean isOpen;
    @Value("${openProject.cmd}")
    private String cmd;
    @Value("${openProject.web.googleExcute}")
    private String googleExcutePath;


    @Override
    public void run(String... args) throws Exception {
        if (isOpen) {
            String runCmd = cmd+" "+googleExcutePath + " " +openUrl ;
            log.info("運行的命令:{}",runCmd);
            Runtime run = Runtime.getRuntime();
            try {
                run.exec(runCmd);
                log.debug("啓動瀏覽器打開項目成功");
            } catch (Exception e) {
                e.printStackTrace();
                log.error("啓動項目自動打開瀏覽器失敗:{}",e.getMessage());
            }
        }
    }
}

window電腦

上圖只是運行命令不同,比mac簡單,只用改下本身電腦對應瀏覽器路徑就能夠瀏覽器

相關文章
相關標籤/搜索