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

如何在Spring Boot启动日志中显示WebApplicationContext访问链接

Spring Boot启动时输出可点击访问链接实现方法

核心逻辑是在应用完全启动完成后,读取已加载的Web配置拼接完整URL打印到日志,主流IDE控制台会自动识别http/https开头的URL渲染为可点击链接,不需要额外做特殊格式处理。

实现步骤

直接注册一个应用就绪事件的监听器,等Web服务、上下文全部初始化完成后再读取配置拼接地址,避免拿到未解析的配置占位符:

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class StartupUrlPrinter implements ApplicationListener<ApplicationReadyEvent> {

    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        Environment env = event.getApplicationContext().getEnvironment();
        
        // 识别是否开启HTTPS
        String protocol = env.getProperty("server.ssl.key-store") == null ? "http" : "https";
        // 读取端口,默认8080
        String port = env.getProperty("server.port", "8080");
        // 读取上下文路径,Servlet应用取这个配置
        String contextPath = env.getProperty("server.servlet.context-path", "");
        // WebFlux响应式应用把上面这行换成下面这行即可
        // String contextPath = env.getProperty("spring.webflux.base-path", "");
        
        // 处理默认绑定地址,0.0.0.0替换为localhost方便本地访问
        String host = env.getProperty("server.address", "localhost");
        if ("0.0.0.0".equals(host)) {
            host = "localhost";
        }

        String accessUrl = String.format("%s://%s:%s%s", protocol, host, port, contextPath);
        log.info("\n========================================\n\t应用已启动,访问地址:{}\n========================================", accessUrl);
    }
}

注意事项

  • 不要在Bean初始化的早期阶段(比如@PostConstruct、InitializingBean接口里)读取配置拼地址,这时候Web服务器还没完成启动,可能拿到未替换的配置占位符,或者端口、上下文路径值不准。
  • 不需要额外给日志加HTML标签(比如<strong>),控制台日志是纯文本渲染,加了标签反而会把标签原文打出来,只要URL是http://开头的标准格式,IDEA、VS Code、Eclipse等常用开发工具都会自动识别为可点击链接。
  • 如果不需要自定义日志格式,Spring Boot 2.3及以上版本默认在Info日志级别下,已经会在Tomcat/Netty启动完成后输出端口、上下文路径信息,只是没有拼成完整链接而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:18:06