Springboot2.3.5整合Swagger3.0以及访问swagger首页404的问题

1.导入Swagger对应的pom.xml文件:

        <dependency>
            <groupId>io.springfoxgroupId>
            <artifactId>springfox-boot-starterartifactId>
            <version>3.0.0version>
        dependency>

2.@EnableOpenApi

Swagger3.0的注解改为@EnableOpenApi,可以自定义SwaggerConfig类,也可以直接加在Springboot启动类上,如果选择SwaggerConfig不要忘记加上@Configuration类,否则不生效。

@EnableOpenApi
@Configuration
public class SwaggerConfig{

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

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API端接口文档")
                //.description("更多请咨询服务开发者XXX")
                //.contact(new Contact("meritco", "北京", ""))
                .version("1.0")
                .build();
    }
}

3.控制器注解

在控制器上加上如下注解:

@Api(tags={"用户操作接口"})
@RestController()
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value = "/hello",method = RequestMethod.GET)
    public String hello(@RequestParam(value = "name") String name) {
        return String.format("Hello %s!", name);
    }
}

4.效果

如果在springboot启动类上加@EnableOpenApi注解,不做任何配置,访问http://10.153.88.238:8085/swagger-ui/index.html会出现如下界面:

Springboot2.3.5整合Swagger3.0以及访问swagger首页404的问题_第1张图片

5.访问swagger-ui/index.html报404

如果在上一步中访问报404,可通过配置静态资源访问路径来解决,资源访问路径取决于springfox-swagger-ui-3.0.0.jarindex.html的位置,下图中红方框路径组合为swagger-ui的访问路径。

Springboot2.3.5整合Swagger3.0以及访问swagger首页404的问题_第2张图片
classpath的配置如下:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.
                addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/swagger-ui/")
                .setViewName("forward:/swagger-ui/index.html");
    }
}

配置后成功访问。

你可能感兴趣的:(spring_v2,swagger,springboot,404,swagger-ui.html)