【踩坑小记】SpringBoot整合Swagger2的3.0.0版本大坑

By | 1月 23, 2022

今天将Swagger2的3.0.0版本整合进SpringBoot时一直提示404,在网上搜索各种都是Swagger2的2.X系列的文章,3.x系列与之前的系列还是有很多不同之处,具体如下:
1.访问地址不同
3.X:

http://localhost:8080/swagger-ui/index.html#/

2.x

http://localhost:8080/swagger-ui.html

2. swagger系列3.x接入更加简洁

  • pom文件引入配置,只需要引入一个
     <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
      </dependency>
  • 注解添加(只需要在启动类添加@EnableOpenApi注解)
package com.onezero.web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;

@EnableOpenApi
@SpringBootApplication
public class OZBlogApplication {

    public static void main(String[] args) {

        SpringApplication.run(OZBlogApplication.class, args);
    }


}

效果图:

swagger效果图

如果要调整swagger配置,可以增加如下类:(注:可以将 @EnableOpenApi 加到此类而不是启动类)

package com.onezero.web.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;


@EnableOpenApi
@Configuration
public class SwaggerConfiguration{

@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.OAS_30)
.enable(true)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.onezero.web.controller"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("OZBlog APIs")
.description("Api接口文档")
.version("1.0.0")
.build();
}



}

发表评论

您的电子邮箱地址不会被公开。