springboot项目启动后,自动打开默认浏览器的方式

 更新时间:2025年11月21日 16:03:11   作者:东黧  
本文介绍了如何在Spring Boot项目中手动加入监听任务,首先,编写一个线程类,在Spring Boot启动加载完后自动执行的操作放在里面,其次,编写一个监听器,监听项目加载完后执行指定操作,最后,在Spring Boot的启动类添加监听任务,实现Spring容器加载完自动监听

手动给spring加入监听任务

1、先写1个线程类,在springboot启动加载完,自动执行的操作放在里面

@Component
public class StepExecutor implements Runnable {
    @Override
    public void run() {
        startStreamTask();
 
    }
    /**
     * 项目启动后打开1个页面
     */
    public void startStreamTask() {
        try {
            Runtime.getRuntime().exec("cmd   /c   start   http://localhost:8080/index");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

2、写1个监听器,监听项目加载完后执行指定操作

public class ApplicationStartup implements ApplicationListener<ContextRefreshedEvent> {
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        ApplicationContext ac = event.getApplicationContext();
        StepExecutor StepExecutor = ac.getBean(StepExecutor .class);
        Thread thread = new Thread(StepExecutor);
        thread.start();
    }
}

3、给springboot的启动类添加监听任务

@SpringBootApplication
public class SpeechApplication {
 
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(SpeechApplication .class);
        springApplication.addListeners(new ApplicationStartup());
        springApplication.run(args);
    }
}

spring容器加载完自动监听

1、实现springboot默认的监听接口,该方法在spring容器加载完自动监听

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;


/**
 * 配置自动启动浏览器
 */

@Component
public class MyCommandRunner implements CommandLineRunner {

    @Value("${server.port}")
    private String port;

    @Override
    public void run(String... args) {
        try {
            Runtime.getRuntime().exec("cmd   /c   start   http://localhost:" + port + "/index");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

2、正常启动

@EnableWebMvc
@SpringBootApplication
public class PhotoShowApplication {

    public static void main(String[] args) {
        SpringApplication.run(PhotoShowApplication.class, args);
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • maven添加jar包到本地仓库的实现

    maven添加jar包到本地仓库的实现

    本文主要介绍了maven添加jar包到本地仓库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • JAVA实现经典游戏坦克大战的示例代码

    JAVA实现经典游戏坦克大战的示例代码

    小时候大家都玩过坦克大战吧,熟悉的旋律和丰富的关卡陪伴了我们一整个寒暑假。本文将通过Java+Swing实现这一经典游戏,感兴趣的可以学习一下
    2022-01-01
  • 一文带你学习Java多维数组的使用技巧

    一文带你学习Java多维数组的使用技巧

    Java作为一门广泛应用于各行各业的开发语言,具有丰富的数据类型支持,其中多维数组是其重要的一种,多维数组可以更加方便地组织数据,提高Java应用程序的效率,本文将为大家介绍Java中多维数组的基本概念和常用操作,助力读者更好地掌握多维数组的使用技巧
    2023-11-11
  • java编译器和JVM的区别

    java编译器和JVM的区别

    在本篇文章里小编给大家整理的是一篇关于java编译器和JVM的区别的相关内容,有兴趣的朋友们可以学习下。
    2020-12-12
  • JavaEE的进程,线程和创建线程的5种方式详解

    JavaEE的进程,线程和创建线程的5种方式详解

    这篇文章主要为大家详细介绍了JavaEE的进程,线程和创建线程的5种方式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • SpringBoot使用Filters实现请求过滤和预处理

    SpringBoot使用Filters实现请求过滤和预处理

    过滤器(Filter)是一种在Web应用中用于拦截和处理HTTP请求和响应的对象,在Java Web开发中,过滤器是实现特定功能,如认证、日志记录和字符编码处理的重要工具,本文主要介绍了SpringBoot使用Filters实现请求过滤和预处理,需要的朋友可以参考下
    2024-08-08
  • 详解基于redis实现分布式锁

    详解基于redis实现分布式锁

    系统的不断扩大,分布式锁是最基本的保障。与单机的多线程不一样的是,分布式跨多个机器。线程的共享变量无法跨机器。本文将介绍基于redis实现分布式锁。
    2021-06-06
  • Spring-IOC容器中的常用注解与使用方法详解

    Spring-IOC容器中的常用注解与使用方法详解

    Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题,这篇文章给大家详细介绍Spring-IOC容器中的常用注解与使用方法,感兴趣的朋友跟随小编一起看看吧
    2021-04-04
  • spring boot 自定义参数过滤器,把传入的空字符转换成null方式

    spring boot 自定义参数过滤器,把传入的空字符转换成null方式

    这篇文章主要介绍了spring boot 自定义参数过滤器,把传入的空字符转换成null方式。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java日常练习题,每天进步一点点(10)

    Java日常练习题,每天进步一点点(10)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07

最新评论