Spring Boot 集成 Swagger

本文将简单介绍怎样在 Spring Boot 中集成 Swagger。

版本信息

spring boot 2.3.7.RELEASE

swagger 2.8.0

Maven 依赖

在 pom.xml 文件中添加如下 maven 依赖信息:

<!--swagger support-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.8.0</version>
</dependency>

Swagger 配置

通过实现 WebMvcConfigurer 接口的 addResourceHandlers(ResourceHandlerRegistry registry) 方法,映射 Swagger 资源。配置如下:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 配置 Swagger
 * @author Administrator 2021/4/23 22:23
 * @version 1.0
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    /**
     * 发现如果继承了WebMvcConfigurationSupport,则在yml中配置的相关内容会失效。
     * 需要重新指定静态资源
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 映射 webjars 资源
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

}

启用 Swagger

在 Spring Boot 的启动类上面通过 @EnableSwagger2 注解启用 Swagger。代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@SpringBootApplication
public class SpringbootSwaggerDemo1Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootSwaggerDemo1Application.class, args);
    }

}

运行 Spring Boot 应用,使用浏览器访问 http://localhost:8080/swagger-ui.html ,效果如下图:

Spring Boot 集成 Swagger

我们愈是学习,愈觉得自己的贫乏。 —— 雪莱
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号