亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot配置項(xiàng)目啟動(dòng)后自動(dòng)打開(kāi)瀏覽器訪問(wèn)項(xiàng)目方式

 更新時(shí)間:2023年01月03日 14:28:23   作者:茁壯成長(zhǎng)的凌大大  
這篇文章主要介紹了springboot配置項(xiàng)目啟動(dòng)后自動(dòng)打開(kāi)瀏覽器訪問(wèn)項(xiàng)目方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

有時(shí)候在單機(jī)部署,或者項(xiàng)目沒(méi)有在IDea 開(kāi)發(fā)工具中運(yùn)行(idea可以自動(dòng)打開(kāi)tomcat項(xiàng)目),需要項(xiàng)目啟動(dòng)后自動(dòng)打開(kāi)瀏覽器訪問(wèn)項(xiàng)目,配置方法很簡(jiǎn)單。

一、具體步驟

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

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

二、寫(xiě)在哪里

有人說(shuō)加一個(gè)過(guò)濾器,我不太明白,其實(shí),我們只需要項(xiàng)目啟動(dòng)后,自動(dòng)打開(kāi)瀏覽器并訪問(wèn)項(xiàng)目,自始至終也就一次,如果用了過(guò)濾器,如何做到只有一次?

所以我覺(jué)得應(yīng)該是加一個(gè)類(lèi),那種類(lèi)只能是項(xiàng)目啟動(dòng)后,執(zhí)行一下打開(kāi)瀏覽器的即可。

對(duì)于springboot 項(xiàng)目的啟動(dòng)項(xiàng),眾所周知,如下:

@SpringBootApplication

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

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

因?yàn)镾pringApplication.run 這個(gè)方法是同步阻塞 的,只有它走完,后邊的才能繼續(xù)進(jìn)行,不會(huì)出現(xiàn)項(xiàng)目還沒(méi)啟動(dòng)后就去打開(kāi)瀏覽器訪問(wèn)項(xiàng)目的問(wèn)題。

三、我的實(shí)現(xiàn)

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

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

1、創(chuàng)建MyCommandRunner

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

比如如下:

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

具體的MyCommandRunner 類(lèi)的內(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("啟動(dòng)瀏覽器打開(kāi)項(xiàng)目成功");
? ? ? ? ? ? }catch (Exception e){
? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? logger.error(e.getMessage());
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

2、配置參數(shù)

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

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

注意訪問(wèn)的項(xiàng)目路徑必須是以http:// 開(kāi)頭,如果你寫(xiě)成了localhost:8080 訪問(wèn)不會(huì)成功的。

3、為什么這么做

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

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

本方法支持springboot 以jar 、war 運(yùn)行,都可以。

總結(jié)

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

相關(guān)文章

  • springboot集成redis啟動(dòng)報(bào)錯(cuò)問(wèn)題的解決方式

    springboot集成redis啟動(dòng)報(bào)錯(cuò)問(wèn)題的解決方式

    這篇文章主要介紹了springboot集成redis啟動(dòng)報(bào)錯(cuò)問(wèn)題的解決方式,從錯(cuò)誤信息上看缺少pool2相關(guān)包,查詢(xún)資料發(fā)現(xiàn)當(dāng)redis客戶端選擇Lettuce時(shí)候需要增加:commons-pool2
    添加引用,重啟服務(wù),需要的朋友可以參考下
    2023-11-11
  • Windows Zookeeper安裝過(guò)程及啟動(dòng)圖解

    Windows Zookeeper安裝過(guò)程及啟動(dòng)圖解

    這篇文章主要介紹了Windows Zookeeper安裝過(guò)程及啟動(dòng)圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java中csv文件讀寫(xiě)超詳細(xì)分析

    Java中csv文件讀寫(xiě)超詳細(xì)分析

    CSV是一種通用的、相對(duì)簡(jiǎn)單的文件格式,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中csv文件讀寫(xiě)分析的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Spring之兩種任務(wù)調(diào)度Scheduled和Async詳解

    Spring之兩種任務(wù)調(diào)度Scheduled和Async詳解

    這篇文章主要介紹了Spring之兩種任務(wù)調(diào)度Scheduled和Async,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java開(kāi)發(fā)AOP面向切面編程入門(mén)

    java開(kāi)發(fā)AOP面向切面編程入門(mén)

    這篇文章主要介紹了java開(kāi)發(fā)的AOP面向切面編程入門(mén)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步學(xué)有所得
    2021-10-10
  • 一個(gè)簡(jiǎn)單的java學(xué)生寢室查詢(xún)系統(tǒng)

    一個(gè)簡(jiǎn)單的java學(xué)生寢室查詢(xún)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了一個(gè)簡(jiǎn)單的java學(xué)生寢室查詢(xún)系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Spring?invokeBeanFactoryPostProcessors方法刨析源碼

    Spring?invokeBeanFactoryPostProcessors方法刨析源碼

    invokeBeanFactoryPostProcessors該方法會(huì)實(shí)例化所有BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的實(shí)例并且執(zhí)行postProcessBeanFactory與postProcessBeanDefinitionRegistry方法
    2023-01-01
  • JAVA程序員不得不留意的編碼規(guī)范

    JAVA程序員不得不留意的編碼規(guī)范

    這篇文章主要介紹了JAVA程序員不得不留意的編碼規(guī)范,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 簡(jiǎn)單介紹區(qū)分applet和application的方法

    簡(jiǎn)單介紹區(qū)分applet和application的方法

    applet和application都是Java語(yǔ)言編寫(xiě)出來(lái)的應(yīng)用程序,本文簡(jiǎn)單介紹了二者的不同之處,需要的朋友可以參考下
    2017-09-09
  • Java中自定義異常詳解及實(shí)例代碼

    Java中自定義異常詳解及實(shí)例代碼

    這篇文章主要介紹了Java中自定義異常詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論