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

Spring Boot 3.2.5集成Swagger3访问swagger-ui遇白标错误求助

问题描述

我正在学习在Spring Boot 3.2.5中使用Swagger3,目前可正常访问http://localhost:8080/rad并获取测试数据,但访问http://localhost:8080/swagger-ui/index.html时出现Whitelabel Error Page。

相关配置信息

依赖配置(pom.xml)

<dependencies>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.32</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
    </dependency>
</dependencies>

启动类代码

@SpringBootApplication
@EnableOpenApi
public class appserver3 {
    public static void main(String[] args) {
        SpringApplication.run(appserver3.class,args);
    }
}

Swagger配置类代码

@Configuration
public class swagger_config {

    @Bean
    public Docket apiconfig(){
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("Fingers")
                .description("fingers")
                .contact(new Contact("1", "2", "3"))
                .version("1.0")
                .build();
    }
}

application.yml配置

Spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
解决方案

核心问题是SpringFox 3.0.0 完全不兼容 Spring Boot 3.x 版本:SpringFox最后一个稳定版本停留在2020年,适配的是Spring Boot 2.x的Java EE规范,而Spring Boot 3.x已切换为Jakarta EE规范,两者依赖的基础包完全不匹配,导致Swagger UI无法正常加载。

具体解决步骤:

  1. 替换Swagger依赖:移除SpringFox,改用适配Spring Boot 3.x的SpringDoc OpenAPI(官方推荐替代方案)
    修改pom.xml依赖:
    <dependencies>
        <!-- SpringDoc OpenAPI 3 Starter(适配Spring Boot 3.x) -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.32</version>
        </dependency>
        <!-- 移除javax.servlet-api,Spring Boot 3.x自带Jakarta Servlet API -->
    </dependencies>
    
  2. 清理旧配置:删除手动编写的swagger_config类,SpringDoc会自动完成基础配置
  3. 调整启动类:移除@EnableOpenApi注解,SpringDoc无需额外启用注解
    修改后启动类:
    @SpringBootApplication
    public class appserver3 {
        public static void main(String[] args) {
            SpringApplication.run(appserver3.class,args);
        }
    }
    
  4. 访问Swagger UI:SpringDoc默认访问地址为http://localhost:8080/swagger-ui.html,http://localhost:8080/swagger-ui/index.html也可正常访问
  5. 可选自定义配置:如果需要定制API文档信息,可添加SpringDoc配置类:
    @Configuration
    public class SpringDocConfig {
        @Bean
        public OpenAPI customOpenAPI() {
            return new OpenAPI()
                    .info(new Info()
                            .title("Fingers")
                            .description("fingers")
                            .contact(new Contact().name("1").url("2").email("3"))
                            .version("1.0"));
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:30:57