最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot配置項目啟動后自動打開瀏覽器訪問項目方式

 更新時間:2023年01月03日 14:28:23   作者:茁壯成長的凌大大  
這篇文章主要介紹了springboot配置項目啟動后自動打開瀏覽器訪問項目方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

有時候在單機部署,或者項目沒有在IDea 開發(fā)工具中運行(idea可以自動打開tomcat項目),需要項目啟動后自動打開瀏覽器訪問項目,配置方法很簡單。

一、具體步驟

所用到的代碼只有下邊這幾句,即cmd調(diào)用一個瀏覽器去打開頁面,我是調(diào)用的google的瀏覽器程序,打開的項目。

?String cmd = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe http://localhost:8080";
? ? ? ? ? ? Runtime run = Runtime.getRuntime();
? ? ? ? ? ? try{
? ? ? ? ? ? ? ? run.exec(cmd);
? ? ? ? ? ? ? ? logger.debug("啟動瀏覽器打開項目成功");
? ? ? ? ? ? }catch (Exception e){
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? logger.error(e.getMessage());
? ? ? ? ? ? }

二、寫在哪里

有人說加一個過濾器,我不太明白,其實,我們只需要項目啟動后,自動打開瀏覽器并訪問項目,自始至終也就一次,如果用了過濾器,如何做到只有一次?

所以我覺得應(yīng)該是加一個類,那種類只能是項目啟動后,執(zhí)行一下打開瀏覽器的即可。

對于springboot 項目的啟動項,眾所周知,如下:

@SpringBootApplication

public class SpringbootQqAction {
? ? public static void main(String[] args){
? ? ? ? SpringApplication.run(SpringbootQqAction.class,args);
? ? ? ? //可不可以加在這里?
? ? }
}

如上面,可以把啟動瀏覽器的執(zhí)行步驟放到上邊嗎?經(jīng)過我測試是可以的 。

因為SpringApplication.run 這個方法是同步阻塞 的,只有它走完,后邊的才能繼續(xù)進行,不會出現(xiàn)項目還沒啟動后就去打開瀏覽器訪問項目的問題。

三、我的實現(xiàn)

我并沒有像上邊說的那樣,直接放到了啟動項那里,我覺得太不靈活,我想搞成一個開關(guān),可以讓這些東西在打完包以后,仍然可以配置。

我們都知道spring 項目啟動時,可以有很多方法,讓它執(zhí)行下一下東西,比如ServletContainerInitializer 、還有,我經(jīng)常使用的一個,監(jiān)聽容器生命周期的ServletContextListener ,這里我用的是另一個,即CommandLineRunner ,該接口是springboot 自己,在項目啟動后會自動掃描CommandLineRunner 實現(xiàn)類中的run 方法,并執(zhí)行。

1、創(chuàng)建MyCommandRunner

該類放置的位置,比springboot 啟動類低一級即可,一般我都會創(chuàng)建一個config 文件夾,然后把它們放到一起。

比如如下:

src
————main
----java
--------springboot.oa
---------------------config
---------------------------MyCommandRunner.java
---------------------SpringbootQqAction.java

具體的MyCommandRunner 類的內(nèi)容如下:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.awt.*;
import java.net.URI;

/**
?* Created by lsf on 2018/6/5.
?*/
@Component
public class MyCommandRunner implements CommandLineRunner {
? ? private static Logger logger = LoggerFactory.getLogger(MyCommandRunner.class);
? ? @Value("${spring.web.loginurl}")
? ? private String loginUrl;

? ? @Value("${spring.web.googleexcute}")
? ? private String googleExcutePath;

? ? @Value("${spring.auto.openurl}")
? ? private boolean isOpen;

? ? @Override
? ? public void run(String... args) throws Exception {
? ? ? ? if(isOpen){
? ? ? ? ? ? String cmd = googleExcutePath +" "+ loginUrl;
? ? ? ? ? ? Runtime run = Runtime.getRuntime();
? ? ? ? ? ? try{
? ? ? ? ? ? ? ? run.exec(cmd);
? ? ? ? ? ? ? ? logger.debug("啟動瀏覽器打開項目成功");
? ? ? ? ? ? }catch (Exception e){
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? logger.error(e.getMessage());
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

2、配置參數(shù)

以上有三個變量loginUrl、googleExcutePath、isOpen,這三個變量對應(yīng)的@Value 值,是配置到了springboot 的配置文件application.properties 中,如下:

#是否打開,想打開下邊就寫true
spring.auto.openurl=false
spring.web.loginurl=http://localhost:8180
spring.web.googleexcute=C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe

注意訪問的項目路徑必須是以http:// 開頭,如果你寫成了localhost:8080 訪問不會成功的。

3、為什么這么做

如上這么做的優(yōu)點是,我可以隨時可以開關(guān)項目啟動后是否打開瀏覽器訪問項目,而且可以隨時配置訪問路徑及默認(rèn)瀏覽器。

最重要的是在項目部署的時候,一般我們都是jar或者war ,如果將這些東西寫到了class 里,那不能直接改,寫到xml 或者application.properties文件是可以隨時修改的。

本方法支持springboot 以jar 、war 運行,都可以。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 完美解決Eclipse導(dǎo)入的項目上有個紅叉,但不影響項目運行的問題

    完美解決Eclipse導(dǎo)入的項目上有個紅叉,但不影響項目運行的問題

    這篇文章主要介紹了完美解決Eclipse導(dǎo)入的項目上有個紅叉,但不影響項目運行的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • java求100以內(nèi)的素數(shù)示例分享

    java求100以內(nèi)的素數(shù)示例分享

    素數(shù)是指因數(shù)只有1和本身的數(shù)字,這篇文章主要介紹了java求100以內(nèi)的素數(shù)示例,需要的朋友可以參考下
    2014-03-03
  • JDK15正式發(fā)布(新增功能預(yù)覽)

    JDK15正式發(fā)布(新增功能預(yù)覽)

    這篇文章主要介紹了JDK15正式發(fā)布,新增功能預(yù)覽,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot解析JSON數(shù)據(jù)的三種方案

    SpringBoot解析JSON數(shù)據(jù)的三種方案

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機器解析和生成,本文給大家介紹了SpringBoot解析JSON數(shù)據(jù)的三種方案,需要的朋友可以參考下
    2024-03-03
  • Spring?Boot實現(xiàn)熱部署的五種方式

    Spring?Boot實現(xiàn)熱部署的五種方式

    這篇文章主要介紹了Spring?Boot?五種熱部署方式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Java中鎖的實現(xiàn)和內(nèi)存語義淺析

    Java中鎖的實現(xiàn)和內(nèi)存語義淺析

    這篇文章主要給大家介紹了關(guān)于Java中鎖的實現(xiàn)和內(nèi)存語義的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • java垃圾回收之實現(xiàn)并行GC算法

    java垃圾回收之實現(xiàn)并行GC算法

    這篇文章主要為大家介紹了java垃圾回收之實現(xiàn)并行GC算法的詳細(xì)講解,讓我們看看并行垃圾收集器的GC日志長什么樣,?從中我們可以得到哪些有用信息
    2022-01-01
  • Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解

    Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解

    這篇文章主要介紹了Spring內(nèi)置定時任務(wù)調(diào)度@Scheduled使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java 包裝類型及易錯陷阱詳解

    Java 包裝類型及易錯陷阱詳解

    這篇文章主要介紹了Java 包裝類型及易錯陷阱詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Maven如何解決添加依賴之后沒有加載jar包報錯問題

    Maven如何解決添加依賴之后沒有加載jar包報錯問題

    這篇文章主要介紹了Maven如何解決添加依賴之后沒有加載jar包報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評論

盱眙县| 大石桥市| 田林县| 金华市| 望城县| 曲麻莱县| 安平县| 乐亭县| 阿城市| 古田县| 江门市| 东阿县| 鄂州市| 胶南市| 安义县| 土默特左旗| 格尔木市| 辽源市| 鄂伦春自治旗| 凤冈县| 梅州市| 郧西县| 和林格尔县| 宁河县| 丽江市| 安化县| 鞍山市| 读书| 浦县| 德令哈市| 古丈县| 定兴县| 金川县| 太仓市| 东乌| 安庆市| 桐梓县| 巴林右旗| 宜良县| 太仆寺旗| 郴州市|