之前我们用SSM或者SSH进行JAVA WEB开发的时候,IDEA 需要配置Tomcat然后把项目放到tomcat运行,tomcat启动的时候会自动打开浏览器去访问项目,但是SpringBoot是内嵌tomcat的,项目启动成功后无法自主访问,需要我们手动打开浏览器输入url访问,我觉得这样很不习惯所以研究了一下

具体实现方案

我想做成一个通用的启动,所以可以随手配置是否需要启动是打开浏览器

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 命令无效无法打开

通过定义属性配置文件达到可以定制化,随手关闭

  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简单,只用改下自己电脑对应浏览器路径就可以

SpringBoot启动后自动打开浏览器访问项目的更多相关文章

  1. SpringBoot项目启动后自动打开浏览器

    编写一个类,注册为Spring的Bean,然后实现CommandLineRunner接口,重写run()方法即可 @Component public class OpenBrowser impleme ...

  2. vue中npm run dev 不能自动打开浏览器运行项目

    最近用vue2.0 + webpack搭建了环境创建新的项目.出现一个很蹩脚的问题: 在终端输入 npm run dev 的时候,不能自动打开浏览器运行项目. 这段话的意思是:你的应用程序运行地址是: ...

  3. autoOpenBrowser: true, 运行npm后自动打开浏览器

    autoOpenBrowser: true, 运行npm后自动打开浏览器

  4. springboot启动后自动退出

    有时新建的springboot启动后自动退出运行,如图所示: 此种情况大都数是因为pom文件加入了tomcat的依赖,与springboot内嵌的tomcat冲突导致,所以只需将pom文件中的tomc ...

  5. vue 使用 npm run dev命令后 自动打开浏览器

    1.使用vue-cli 老版本构建项目时, 可修改config文件夹下index.js文件 autoOpenBrowser 属性给为 true 即可 使用vue-cli 3.x 版本后,所有的配置项均 ...

  6. [vuejs] 终端npm run dev 不能自动打开浏览器运行项目解决办法

    终端执行: npm run dev 出现: I Your application is running here: http://localhost:8080 但并没有打开浏览器运行项目 解决办法: ...

  7. 如何关闭D10 启动后自动打开的 WelCome页

    在快捷方式上 修改为 "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\bds.exe" -pDelphi -np 最后增加 ...

  8. codeblocks如何设置,启动后自动打开上次未关闭的workspace

    设置--环境--普通设置--on application start-up -------default 关闭code::blocks时不要关那个workspace就可以.至于其它方法就不知道了.

  9. Springboot项目启动后自动创建多表关联的数据库与表的方案

    文/朱季谦 在一些项目开发当中,存在这样一种需求,即开发完成的项目,在第一次部署启动时,需能自行构建系统需要的数据库及其对应的数据库表. 若要解决这类需求,其实现在已有不少开源框架都能实现自动生成数据 ...

随机推荐

  1. Codeforces Round #614 (Div. 2) C - NEKO's Maze Game

    题目链接:http://codeforces.com/contest/1293/problem/C 题目:给定一个 2*n的地图,初始地图没有岩浆,都可以走, 给定q个询问,每个询问给定一个点(x,y ...

  2. 测试并整理的 Airpods Pro 刻字可用的最全特殊符号

    天气符号 ☉ 文化符号 卍卐 办公室符号 № ℗ ℡ ℀ ℅ ™ © ® ‰ ¶ § 技术符号 ⇧  打勾符号 ˇ ∨ √ 人的符号 ♀ ♂ ヅ ツ ü 星星符号 ☆ ★ ✽ 箭头符号 ↖ ↗ ↘ ...

  3. linq和扩展方法

    c#的扩展方法 1.必须是在一个非嵌套.非泛型的静态类中的静态方法 2.至少一个参数,第一个参数附加this,不能有其他修饰符如out.ref 3.第一个参数不能是指针类型 上面例子是自定义的一个扩展 ...

  4. [Codechef - AASHRAM] Gaithonde Leaves Aashram - 线段树,DFS序

    [Codechef - AASHRAM] Gaithonde Leaves Aashram Description 给出一棵树,树的"N"节点根植于节点1,每个节点'u'与权重a[ ...

  5. uevent机制

    uevent, user space event. 内核与用户空间的一种通信机制,基于netlink机制,主要用于设备驱动模型,例如热插拔. 1.调用/sbin/mdev的流程分析 在驱动程序中经常出 ...

  6. DE1-GHRD

    新建工程socs_system 进入菜单选择Tools---Qsys 配置hps系统 首先选择 在更改参数 配置hps的sdram各项参数 将名字改为hps_0 这样hps配置完成:在配置存储器和其他 ...

  7. 箭头函数 与 forEach

    array.forEach(function(item,index){ }.bind(this)); 同 array.forEach((item,index) =>{ });

  8. day14 find

    find命令查找信息补充 查看找文件数据信息: 精确查找: find 路径信息 -type 文件类型 -name "文件名" 模糊查找: find 路径信息 -type 文件类型 ...

  9. 2019牛客多校第一场E ABBA dp

    ABBA dp 题意 给出2(N+M)个AB字符,问能构造出N个AB子序列和M个BA子序列组成的2*(n+m)的序列种类有多少 思路 碰到计数构造类的题目,首先要去找到判断合法性的条件,即什么情况下合 ...

  10. 每天进步一点点------Allegro PCB

    Allegro PCB 1.如何在allegro中取消花焊盘(十字焊盘) set up->design parameter ->shape->edit global dynamic ...