You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动时自动打开Swagger UI页面的实现方法(IntelliJ)

Spring Boot启动自动打开Swagger UI的实现方法

一、通过IntelliJ IDEA配置(无需改代码)

这是最适合你的方案,社区版完全支持:

  • 点击右上角运行按钮旁的下拉菜单,选择「Edit Configurations」
  • 找到你的Spring Boot应用配置,切换到Startup/Connection标签页
  • 在「Before launch」区域,点击「+」号选择「Run External Tool」,再点击「+」新建工具:
    • 名称随便填,比如「Open Swagger UI」
    • 程序路径:Windows填cmd.exe,Mac填open,Linux填xdg-open
    • 参数:Windows填/c start http://localhost:8080/swagger-ui.html,Mac/Linux直接填http://localhost:8080/swagger-ui.html
    • 工作目录选项目根目录即可
  • 保存配置后,启动项目时IDE会自动帮你打开Swagger页面

二、代码/脚本实现(跨环境通用)

如果需要脱离IDE也能自动打开,或者团队统一配置,可以用以下方式:

1. 自定义监听类(你的方案完全合法)

只要控制只在开发环境生效,就不会有问题,避免生产环境触发:

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.awt.*;
import java.net.URI;

@Component
public class SwaggerAutoOpenListener implements ApplicationListener<ApplicationReadyEvent> {

    private final Environment env;

    public SwaggerAutoOpenListener(Environment env) {
        this.env = env;
    }

    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        // 仅在开发环境执行
        for (String profile : env.getActiveProfiles()) {
            if ("dev".equals(profile)) {
                try {
                    String port = env.getProperty("server.port", "8080");
                    Desktop.getDesktop().browse(new URI("http://localhost:" + port + "/swagger-ui.html"));
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;
            }
        }
    }
}

注意:如果部署到无桌面环境的服务器,这段代码会报错,所以环境判断一定要加。

2. 启动脚本配合

Spring Boot本身没有内置的自动打开浏览器配置项,但可以写启动脚本:

  • Windows(bat脚本):
java -jar your-spring-boot-app.jar
start http://localhost:8080/swagger-ui.html
  • Mac/Linux(sh脚本):
java -jar your-spring-boot-app.jar &
sleep 5 # 等应用启动完成
open http://localhost:8080/swagger-ui.html # Linux换成xdg-open

总结

你之前见过的自动打开场景,大概率是用了IDE的配置方案,这种无需改代码更省心;你现在用的自定义代码方案也是正确的,只要做好环境隔离就不用担心问题。

内容的提问来源于stack exchange,提问作者SillyQuestion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:55:41