SpringBoot集成Swagger2组件

540 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

背景

最近在学习SpringBoot,于是先自己集成一些组件,这次我们要来集成的组件就是Swagger2,来实现API的在线文档。

如下图所示效果:

image.png

下面就看一下吧,从0到1的集成Swagger2组件。

实现的具体部署

首先引入jar包组件,编辑pom文件,加入以下代码:

注:这里就不再介绍SpringBoot项目的创建了,请大家自行解决。

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

在这之后,就要编写一个自动配置类,配置类如下代码:

@Configuration
@EnableSwagger2
public class Swagger2Configuration {

    @Value(value = "${swagger.enable}")
    private boolean swaggerEnable;

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(swaggerEnable)
                .select()
                .apis(RequestHandlerSelectors.any())
                //错误路径不监控
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                // 对根下所有路径进行监控
                .paths(PathSelectors.regex("/.*"))
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API")
                .description("项目提供对外所有API,请查收。")
                .termsOfServiceUrl("http://www.test.com")
                .version("1.0")
                .build();
    }

}

经过此项配置类的编写完成,其实就差不多完成了本次的编写。

但是,还有一想并没有完成,就是配置类中的参数swaggerEnable,这个参数目前我们还没有配置,所以要在application.yml中增加这项配置。

在配置文件中加入如下代码:

swagger:
  enable: true

增加了这项配置后,就可以正常访问页面,相应的页面地址是localhost:8080/swagger-ui.html,如此就可以得到文章开始的效果了。