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

如何在Spring Boot中修改Swagger路径,将swagger-ui替换为/docs

解决Spring Boot中Swagger访问路径简化问题

方案一:通过springdoc配置直接修改(推荐)

如果使用的是springdoc-openapi依赖,只需在application.yml中添加以下配置:

springdoc:
  swagger-ui:
    path: /docs/index.html
    disable-swagger-default-url: true
  • springdoc.swagger-ui.path:指定自定义的Swagger访问路径
  • disable-swagger-default-url: true:禁用默认的Swagger UI路径,避免不必要的重定向

配置完成后,直接访问http://localhost:8080/docs/index.html即可打开Swagger界面,不会再跳转到原路径。

方案二:修复自定义控制器实现

如果想用自定义控制器的方式,需要注意两个核心问题:

  1. 控制器类必须添加@Controller注解,否则Spring无法识别并处理请求
  2. 重定向的目标路径要与当前Swagger UI的实际路径一致(即/swagger-ui/index.html,而非旧版的/swagger-ui.html)

修正后的控制器代码:

import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import java.io.IOException;

@Controller
public class SwaggerController {

    @GetMapping("/docs/index.html")
    public void apiDocumentation(HttpServletResponse response) throws IOException {
        // 重定向到Swagger UI的实际路径
        response.sendRedirect("/swagger-ui/index.html");
        // 若不想暴露原路径,也可以使用请求转发:
        // request.getRequestDispatcher("/swagger-ui/index.html").forward(request, response);
    }
}

之前配置无效的原因

  • 单独设置springdoc.swagger-ui-path未搭配disable-swagger-default-url: true,系统仍会重定向到默认路径
  • 自定义控制器缺少@Controller注解,Spring未加载该控制器,请求未被处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:52:09